Hello there, ('ω')ノ
1. アプリケーションを解析してAPIドキュメントを発見する
APIを利用するアプリケーションを調査し、ドキュメントに関連するエンドポイントを探します。以下の方法が有効です。
(1) Burp Suiteを使ったAPIのクロール
- Burp Scanner を使って、アプリケーションをクロールし、APIエンドポイントを自動検出する。
- Burpのブラウザ(Embedded Chromium)を使い、手動でアプリケーションを操作しながら、リクエストの流れを確認する。
(2) APIドキュメントに関連するURLの探索
以下のようなAPIドキュメント関連のURLをリクエストし、存在するか確認します。
/api
/swagger/index.html
/swagger-ui.html
/openapi.json
/swagger/v1/swagger.json
/redoc
これらのURLにアクセスできれば、APIの詳細な仕様を確認できる可能性があります。
(3) エンドポイントのパターンからAPIのベースパスを推測
特定のAPIリソースを発見した場合、そのベースパスを調査することで、他の関連エンドポイントを見つけることができます。
例:
/api/swagger/v1/users/123
というエンドポイントが見つかった場合、以下のようなパスを確認してみる。
/api/swagger/v1 /api/swagger /api
2. Burp Intruderを使った総当たり探索
Burp SuiteのIntruderを利用して、よくあるAPIドキュメントのパスを総当たり(ブルートフォース)することも有効です。
(1) よくあるAPIドキュメントのパスリストを使用
Intruderで以下のようなパスを試してみましょう。
/api-docs /api/v1/docs /swagger/index.html /swagger-ui.html /openapi.json /redoc /docs /metadata
これらのパスは、APIのドキュメントが配置されている可能性が高いものです。
(2) レスポンスコードを分析
200 OK
→ 存在するAPIドキュメントの可能性大403 Forbidden
→ アクセス制限がかかっているが、内部には存在する可能性あり404 Not Found
→ 存在しないが、他のパスを試す価値あり
3. APIドキュメント発見のコツ
✅ ウェブサイトのrobots.txtをチェック
- https://example.com/robots.txt
を確認すると、Disallow
にAPI関連のパスが記載されていることがある。
✅ JavaScriptファイルの解析
- https://example.com/main.js
のようなJavaScriptファイルを調査し、APIエンドポイントやドキュメントURLがハードコードされていないか確認する。
✅ アプリケーションのレスポンスからヒントを得る
- 404エラーメッセージやエラーログの詳細を調べると、APIのパス情報が含まれている場合がある。
まとめ
APIドキュメントが公開されていなくても、アプリケーションを詳しく調査することで情報を発見できる可能性があります。Burp Suiteを活用し、APIエンドポイントを特定しながら、関連するパスを試すことで、隠れたAPIドキュメントにアクセスできるかもしれません。
APIのリコンを行う際は、まずアプリケーションがどのようにAPIを利用しているかを理解し、パターンを見つけることが重要です。
Best regards, (^^ゞ