Shikata Ga Nai

Private? There is no such things.

LAB: リダイレクトレスポンスで機密情報が漏洩するIDOR攻撃の実例

Hello there, ('ω')ノ

🎯 目的

  • 自分のアカウントページにアクセス。
  • id パラメータを carlos に改ざんして、carlos のアカウント情報を不正に取得。
  • レスポンスはリダイレクト(302)だが、本文に API キーが含まれている
  • APIキーを抽出して提出 → ラボクリア。

🔐 アカウント情報

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

🧪 攻略手順(Burp Suite使用)

1. 通常通りログイン

  • wiener アカウントでログイン。
  • アカウントページ(例:/account?id=wiener)にアクセス。

2. リクエストを Burp Repeater に送信

  • 該当リクエストを Burp の Proxy でキャプチャし、Repeater に送信。

3. id パラメータを改ざん

  • id=wienerid=carlos に変更。
GET /account?id=carlos HTTP/1.1
Host: lab-idor-leak.acme.net
Cookie: session=...

4. レスポンスを確認

  • ステータスコードは 302 Found/home などにリダイレクト。
  • しかし、レスポンス本文に以下のような情報が含まれている:
<div>API Key: <code>carlos-api-key-123</code></div>

🗝 APIキーを抽出して提出

  • 上記のように表示された carlos の API キーをコピーし、フォームに貼り付けて提出。
  • 🎉 ラボクリア!

🛡 攻撃者が得られる情報は?

  • ユーザー carlosAPIキー
  • 本来ログインしていなければ見えない個人情報

🔐 開発者向けの対策

対策 内容
リダイレクト前に必ず権限チェック 正規ユーザー以外が参照できないように制御
機密情報は本文に一切含めない リダイレクトレスポンスは空にするのが基本
ユーザー特定にセッション情報を使用 id パラメータを信頼しない設計へ移行

🔍 表面的にアクセスがブロックされていても、レスポンス本文を読めば攻撃は成功しているというケースは多く存在します。リダイレクトが「見かけだけ」のセキュリティになっていないか、常に注意しましょう。

Best regards, (^^ゞ