Shikata Ga Nai

Private? There is no such things.

Burp Intruderを使って隠されたAPIエンドポイントを発見する方法

Hello there, ('ω')ノ

初期調査でいくつかのAPIエンドポイントを特定したら、Burp Intruderを使ってその周辺にある隠されたエンドポイントを見つけることができます。これは、開発者が使っているが公開していない管理用や開発用の機能を暴き出すのに非常に有効です。


1. 目的:既存のパス構造をベースにエンドポイントを推測する

例: 既知のエンドポイント

PUT /api/user/update

この構造に基づいて、/update の部分に delete, add, info, promote, deactivate などを挿入してみると、他の機能が存在するかもしれません。


2. Burp Intruderによる探索手順

ステップ① Intruderにリクエストを送る

  • /api/user/update のような既知のリクエストを Burpの HTTP history から選び、
    右クリック → Send to Intruder

ステップ② パスをプレースホルダー化する

  • update の部分を選択し、§update§ のようにマークする。
PUT /api/user/§update§ HTTP/1.1
Host: example.com

ステップ③ ワードリストを設定する

  • 攻撃タイプを「Sniper」に設定。
  • ペイロードとして以下のようなAPIによくある用語のリストを使用:
add
delete
remove
get
info
list
details
edit
disable
enable
promote
demote
verify
reset
status

🧠 ポイント:アプリの機能に関係しそうな単語も追加すること!
(例: ユーザー関連 → ban, deactivate, reactivate, password)


3. レスポンスを比較して存在するエンドポイントを特定する

  • レスポンスコード:200, 403, 401, 500 は存在する可能性あり
  • 404 Not Found → 存在しない可能性が高い
  • レスポンスサイズが違う、またはメッセージが異なる場合は要注目!

4. 高度なテクニック:複数階層にも適用可能

複数のディレクトリ構造がある場合にも、Intruderを使って柔軟にテストできます。

例:

/api/admin/§action§  
/api/users/123/§operation§  
/api/orders/§id§/status

Burp Intruderの複数パラメータ対応や、Cluster Bombモードを活用すると、組み合わせ攻撃も可能。


5. 注意点とコツ

RATE LIMIT に注意 → 連続リクエストに対する制限を避けるために、送信速度を調整する
403 Forbidden も成功の兆候 → アクセス制限されているが、実体としては存在している
ドキュメントやJSファイルから得た用語を使うと効果UP
404が返っても、実は内部でエラー処理している場合もあるのでエラーメッセージの内容もチェック


まとめ

既存のAPIパスをベースに、Burp Intruderで周辺の隠れた機能を探す
一般的な用語+アプリ特有のワードリストを使うと効果的
レスポンスの違いを比較して、存在するエンドポイントを特定する

この手法は、通常ユーザーには見えない 管理者用機能や未公開のAPI機能 を発見するのに非常に強力です。特に内部テストやバグバウンティでは重要なスキルの1つになります。

Best regards, (^^ゞ