Hello there, ('ω')ノ
APIドキュメントが公開されていない場合でも、APIを利用しているアプリケーションを調査することでアクセスできる可能性があります。以下の方法を活用して、隠れたAPIドキュメントを見つけましょう。
1. アプリケーションの解析
APIドキュメントを発見するために、アプリケーションの通信や構造を調査します。
① Burp Scannerを使用する
Burp SuiteのBurp Scannerを使ってAPIをクロールし、関連するエンドポイントを発見できます。
② Burpのブラウザで手動調査
Burp Suiteの内蔵ブラウザを使い、Webアプリケーションを手動で閲覧しながら、APIドキュメントが存在する可能性のあるエンドポイントを探します。
③ APIドキュメントが含まれる可能性のあるパス
次のようなエンドポイントを探すと、APIドキュメントにアクセスできる場合があります。
/api /swagger/index.html /openapi.json /swagger.json /api-docs /docs /redoc
例えば、/swagger/index.html
が見つかれば、Swagger UIが表示される可能性があります。
2. ベースパスの探索
もし特定のリソースエンドポイントが判明した場合、そのベースパスを辿ることでより多くの情報を得られることがあります。
例:発見されたエンドポイント
/api/swagger/v1/users/123
この場合、以下のパスも調査すると、APIドキュメントが見つかる可能性があります。
/api/swagger/v1 /api/swagger /api
3. Burp Intruderで総当たり攻撃
Burp SuiteのIntruder機能を使い、よく使われるAPIドキュメントのパスを試すことで、隠れたドキュメントを発見できることがあります。
試すべき一般的なパスリスト
/api-docs /openapi.json /swagger.json /redoc /docs /v1/api-docs /v2/api-docs /graphql/schema.json /wsdl /rest/api
Intruderを使ってこれらのパスを試し、HTTPレスポンスのステータスコード(200 OKなど)を確認することで、ドキュメントが存在するかどうかを特定できます。
4. GitHubやコードリポジトリの調査
APIドキュメントが開発者向けに提供されていない場合でも、GitHubリポジトリや他のソースコード共有プラットフォームを検索すると、設定ファイルやコード内にAPIの仕様が記載されていることがあります。
検索のポイント
site:github.com "openapi.json"
site:github.com "swagger.json"
site:github.com "API_KEY"
また、過去の誤設定によるリークを調べるために、PublicWWW などのツールも利用できます。
まとめ
APIドキュメントが見つからない場合でも、以下の方法で調査を進めることができます。
- Burp Scanner や手動ブラウズでエンドポイントを探索
- 既知のAPIドキュメントのパスを試す
- 発見したリソースのベースパスをたどる
- Burp Intruder で総当たりリクエストを送る
- GitHub やコードリポジトリでAPI仕様を検索
このように、APIドキュメントの存在を見つけることができれば、APIの攻撃対象領域(アタックサーフェス)を広げることができ、より効果的なセキュリティテストを行うことが可能になります。
Best regards, (^^ゞ