Hello there, ('ω')ノ
🎯 ゴール
- ユーザー
wienerを管理者に昇格する - Referer ヘッダーを偽装して管理者専用機能を実行
手順
Step 1: 管理者で通常操作を確認
administrator:adminでログイン/adminパネルへアクセス- ユーザー
carlosを昇格させる操作を行う Burp Suite でこの昇格リクエストをキャプチャし、Repeaterに送信
リクエスト例:
GET /admin-roles?username=carlos&action=upgrade HTTP/1.1 Host: vulnerable-website.com Referer: https://vulnerable-website.com/admin Cookie: session=<admin-session>
Step 2: 非管理者アカウントで攻撃準備
- シークレットウィンドウで
wiener:peterでログイン sessionCookie の値をBurpにコピー
Step 3: リクエスト改ざんで昇格
- Step 1で取得した昇格リクエストの Cookie を、非管理者のセッションIDに置き換える
- パラメータを変更:
username=wiener
- Referer ヘッダーを残したまま送信:
Referer: https://vulnerable-website.com/admin
- 実行すると、
wienerが管理者に昇格
✅ 学べるポイント
- Referer ヘッダーは簡単に偽装可能 攻撃者は任意の値を設定できるため、アクセス制御の根拠としては不適切
- Burp Suiteの役割 正規ユーザーのリクエストを保存し、Cookieとパラメータを差し替えることで低権限アカウントから攻撃を再現できる
防御策
- Referer ヘッダーのみに依存しない
- サーバー側でセッション情報から権限を検証する
Best regards, (^^ゞ