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エンドポイントを探索する
Repeaterで
PATCH /api/user/wiener
を送信- レスポンスに
wiener
の情報が返されることを確認。
- レスポンスに
エンドポイントを
/api/user
に変更してリクエストを送信/wiener
を削除し、PATCH /api/user
に変更して送信。- エラーが返る(ユーザーIDが必要)。
エンドポイントを
/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, (^^ゞ