Shikata Ga Nai

Private? There is no such things.

APIリコン – APIテストのための情報収集

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に送信するリクエストをキャプチャし、エンドポイントを特定します。

  • ディレクトリブルートフォースを試す
    ffufdirb などのツールを使い、隠れたAPIエンドポイントを探すことも可能です。

  • エラーメッセージを活用する
    無効なリクエストを送信し、APIのレスポンスを確認すると、エンドポイントや認証方式に関するヒントが得られる場合があります。

Best regards, (^^ゞ