Shikata Ga Nai

Private? There is no such things.

LAB: APIドキュメントを利用したエンドポイントの悪用

Hello there, ('ω')ノ

概要

このラボでは、APIドキュメントが公開されていることを利用して、特定のエンドポイントを悪用し、carlos ユーザーを削除することが目的です。


手順

1. アプリケーションにログインする

Burp Suiteのブラウザを使用し、以下の認証情報でログインします。

ユーザー名: wiener  
パスワード: peter  

2. 自分のメールアドレスを更新し、APIリクエストを確認

  • ログイン後、アカウント設定でメールアドレスを更新します。
  • Burp Suiteの Proxy > HTTP history を開き、PATCH /api/user/wiener リクエストを探します。
  • そのリクエストを 右クリック → "Send to Repeater" でRepeaterに送ります。

3. APIエンドポイントを探索する

  1. Repeaterで PATCH /api/user/wiener を送信

    • レスポンスにwienerの情報が返されることを確認。
  2. エンドポイントを /api/user に変更してリクエストを送信

    • /wiener を削除し、PATCH /api/user に変更して送信。
    • エラーが返る(ユーザーIDが必要)。
  3. エンドポイントを /api に変更してリクエストを送信

    • /user も削除し、PATCH /api に変更して送信。
    • APIドキュメントが返されることを確認

4. APIドキュメントをブラウザで開く

  • レスポンスを右クリック → "Show response in browser" を選択
  • URLをコピーしてBurpのブラウザに貼り付けて開く
  • インタラクティブなAPIドキュメントを確認する

5. carlos を削除する

  • APIドキュメント内の DELETEリクエストの行を探す
  • ユーザー削除のリクエストに carlos を入力
  • "Send request" をクリック

まとめとポイント

APIドキュメントが公開されていると、攻撃者にとって大きな武器になる
エンドポイントを操作して、非公開情報や管理機能を探るのが有効
Burp SuiteのRepeaterとブラウザ機能を活用すると、効率的にAPIを調査できる

このようなAPIの誤設定は、実際のシステムでも発生することがあります。適切なアクセス制御がなされていないAPIは、攻撃者に悪用されるリスクが高いため、テスト時に注意深く調査することが重要です。

Best regards, (^^ゞ