Hello there, ('ω')ノ
1. APIエンドポイントの特定
APIエンドポイントとは、APIがリクエストを受け取る場所のことを指します。エンドポイントを特定することで、APIの機能や構造を理解できます。
たとえば、以下のようなGETリクエストがあるとします。
GET /api/books HTTP/1.1 Host: example.com
この場合、エンドポイントは /api/books
です。このリクエストは、APIに対して本のリストを取得するよう要求しています。
さらに、以下のようなエンドポイントも考えられます。
GET /api/books/mystery
これは「ミステリー本のリストを取得する」リクエストになります。
2. APIとのやり取り方法を理解する
エンドポイントを特定したら、APIとのやり取りを正しく行う方法を理解しましょう。これにより、有効なHTTPリクエストを構築してAPIテストを行うことができます。
以下の情報を収集すると良いでしょう。
入力データの種類
APIが処理するデータの種類を調査します。必須パラメータやオプションパラメータを特定しましょう。対応するリクエストの種類
APIが受け付けるHTTPメソッド(GET, POST, PUT, DELETE など)や、サポートしているメディアフォーマット(JSON, XML など)を確認します。レートリミットと認証方式
APIのリクエスト制限(レートリミット)や、必要な認証方法(APIキー、OAuth、JWT など)を調査します。
APIリコンのポイントとコツ
開発者向けドキュメントを確認する
APIの公式ドキュメントをチェックすることで、多くの情報を得られます。APIリクエストのログを確認する
Burp SuiteやPostmanを使って、アプリがAPIに送信するリクエストをキャプチャし、エンドポイントを特定します。ディレクトリブルートフォースを試す
ffuf
やdirb
などのツールを使い、隠れたAPIエンドポイントを探すことも可能です。エラーメッセージを活用する
無効なリクエストを送信し、APIのレスポンスを確認すると、エンドポイントや認証方式に関するヒントが得られる場合があります。
Best regards, (^^ゞ