PortSwigger Web Security Academy の CSRF ラボ群を、日本語の美容EC文脈で再構成した教材です。
被害者ビュー(うつろい EC)+ 攻撃者ビュー(罠サイト)を並べた2画面シミュレーターで、cross-origin リクエストの自動 Cookie 添付を体感します。

全5問 Token なし / 検証不備 / Referer / SameSite 2 iframe 並列シミュレーター

教育目的のシミュレータです。攻撃の挙動はブラウザ内で完結し、実在のシステムへの攻撃機能は持ちません。

知識ベース — 前提知識と概念整理
Knowledge Base · 各ラボから参照される基礎
KB1
Cookie とブラウザのリクエスト送信
Cookie の自動送信ルール、cross-origin リクエスト、Same-Origin Policy が CSRF を防がない理由、SameSite 属性の役割。
KB2
CSRF の仕組みと防御
CSRF が成立する3つの条件、典型的な攻撃フロー、Token / SameSite / Referer 検証 / Double Submit Cookie パターンによる防御。
Phase 1 — 基礎
Apprentice / Practitioner · CSRF の主要パターン
01
CSRF — メールアドレス変更フォームへの攻撃
Token なしの最も基本的な CSRF。罠サイトから自動送信フォームを発射、被害者の認証 Cookie で攻撃者のアドレスに書き換え。
Apprentice
02
Token 検証不備 — 「Token があれば検証」の罠
Token は実装されているが、「Token フィールドが無いと検証スキップ」というバグ。Token を送らなければ素通り。
Practitioner
03
Token がセッションに紐付いていない
攻撃者が自分のセッションで取得した Token を、被害者の攻撃に使い回せてしまう実装ミス。
Practitioner
04
Referer 検証の回避 — 部分一致の罠
サーバが Referer に shop.utsuroi.example.com が含まれているかだけを確認。...example.com.evil.com や クエリ偽装で素通り。
Practitioner
05
SameSite=None の罠 — サードパーティ連携の代償
サードパーティ連携のために SameSite=None にした結果、Chrome デフォルト保護が無効化されて古典 CSRF 攻撃面が復活。
Practitioner