Shikata Ga Nai

Private? There is no such things.

APIドキュメントの発見 – 非公開の情報を見つける方法

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