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, (^^ゞ