Shikata Ga Nai

Private? There is no such things.

LAB: 複数ステップ処理の一部にアクセス制御が欠落している脆弱性の攻略

Hello there, ('ω')ノ

🎯 ゴール

  • 非管理者ユーザー wiener を管理者に昇格させる
  • 脆弱性は「昇格処理の確認ステップ」にアクセス制御がかかっていないこと

手順

Step 1: 管理者で通常の昇格処理を確認

  1. administrator:admin でログイン
  2. /admin パネルにアクセス
  3. carlos を昇格させる機能を使い、**最終確認(Step 3)**まで進める
  4. Burp Suite で最後の確認リクエストをキャプチャし、Repeaterに送信

    • このリクエストがアクセス制御抜け穴となる

Step 2: 非管理者で昇格リクエストを利用

  1. シークレットウィンドウで wiener:peter でログイン
  2. この非管理者の session Cookie をBurpでコピー
  3. Step 1のRepeaterリクエストに貼り替える
  4. リクエストパラメータ username=carlosusername=wiener に変更
  5. リクエストを送信すると wiener が管理者に昇格

✅ 学べるポイント

  • 複数ステップ処理はすべてのステップで権限チェックが必要

    • 「最初のステップを通った=全ステップ通過してOK」という設計は危険
  • Burp Repeaterの使い方

    • 権限のあるリクエストをコピーし、低権限ユーザーのCookieに差し替える
  • 防御策

    • 各ステップごとにサーバー側で認証・権限を再確認
    • セッションやワークフローIDを利用して正しい遷移順を強制

Best regards, (^^ゞ