Hello there, ('ω')ノ
🎯 ゴール
- 非管理者ユーザー
wienerを管理者に昇格させる - 脆弱性は「昇格処理の確認ステップ」にアクセス制御がかかっていないこと
手順
Step 1: 管理者で通常の昇格処理を確認
administrator:adminでログイン/adminパネルにアクセスcarlosを昇格させる機能を使い、**最終確認(Step 3)**まで進めるBurp Suite で最後の確認リクエストをキャプチャし、Repeaterに送信
- このリクエストがアクセス制御抜け穴となる
Step 2: 非管理者で昇格リクエストを利用
- シークレットウィンドウで
wiener:peterでログイン - この非管理者の
sessionCookie をBurpでコピー - Step 1のRepeaterリクエストに貼り替える
- リクエストパラメータ
username=carlosをusername=wienerに変更 - リクエストを送信すると
wienerが管理者に昇格
✅ 学べるポイント
複数ステップ処理はすべてのステップで権限チェックが必要
- 「最初のステップを通った=全ステップ通過してOK」という設計は危険
Burp Repeaterの使い方
- 権限のあるリクエストをコピーし、低権限ユーザーのCookieに差し替える
防御策
- 各ステップごとにサーバー側で認証・権限を再確認
- セッションやワークフローIDを利用して正しい遷移順を強制
Best regards, (^^ゞ