Shikata Ga Nai

Private? There is no such things.

隠されたAPIパラメータの発見方法 – アプリの裏機能を引き出すリコン技術

Hello there, ('ω')ノ

APIのリコン(情報収集)では、ドキュメントに記載されていない隠しパラメータ(非公開パラメータ)を見つけることがあります。これらのパラメータをうまく使えば、アプリの挙動を変えたり、本来見えない機能にアクセスできたりする可能性があります。


🧠 隠しパラメータとは?

  • APIやアプリが内部的に使用しているが、UIやドキュメントでは表示されないパラメータ。
  • 例:
    • admin=true
    • debug=1
    • internal_user=true
    • view=raw

👉 正しく使用すると管理者ビューが表示される機能がアンロックされるなどのリスクを引き起こす可能性があります。


🔍 Burp Suiteを使った隠しパラメータの発見方法

Burp Intruderでブルートフォース(総当たり)

  • 任意のリクエストを "Send to Intruder"
  • パラメータ名の位置に §param§ を指定
  • ペイロードに隠しパラメータのワードリストを設定

✅ よく使われるパラメータ例:

admin
is_admin
role
debug
hidden
internal
preview
raw
access
auth
mode
action

📌 アプリ固有のワードも入れるとヒット率UP!


Param Miner BAppを使って自動発見

  • Burp SuiteのBApp Storeから Param Miner をインストール
  • リクエストを右クリック → "Guess (cookies/params/header)"
  • 自動的に最大 65,536個のパラメータ名を推測して送信&結果を比較

🔁 範囲(Scope)情報を基に、アプリに特化したパラメータも推測


Content Discoveryツールを活用

  • Burpの "Content discovery" 機能で、リンクされていないコンテンツやパラメータもスキャン
  • JSファイルやHTML内の非表示フィールドを解析
  • URLに出てこない POST パラメータも見つけられる可能性あり

🧪 検出したパラメータの使い方

  1. 本来アクセスできないデータを表示できるか?
    /api/user/profile?admin=true

  2. アプリの表示モードが変わるか?
    view=debug → サーバーエラー詳細が見えるかも

  3. アクセス制御が緩くなるか?
    internal=true → 本来社内ユーザー限定の機能が有効に?

  4. 動作が変わるか?
    action=delete → 本来のGETがDELETE動作になるかも


実践のポイント

  • 既存のパラメータを置換して試すだけでなく、新しいパラメータの追加も行う
  • エラーメッセージの変化、レスポンスサイズ、HTTPステータスコードを観察
  • 正常/異常の境界を丁寧に探る
  • 最初のReconで使われていた用語や命名パターンに注目

🧩 まとめ

✅ 隠しパラメータは、開発者用・管理者用機能の残骸であることが多く、攻撃の糸口に
✅ Burp IntruderとParam Minerを組み合わせると、大量のパラメータを効率的にテスト可能
✅ アプリ特有の命名やJSの中からヒントを得るのが重要

Best regards, (^^ゞ