知識ベース — 前提知識と概念整理
Knowledge Base · 各ラボから参照される基礎
KB1
HTML と DOM の基礎
HTML タグと属性、DOM、script タグと JavaScript の実行、イベントハンドラ属性、innerHTML の危険性。
KB2
XSS の3分類
Reflected / Stored / DOM-based の違い、被害範囲の比較、XSS の真の被害(Cookie 窃取、改ざん、なりすまし)。
Phase 1 — 基礎
Apprentice / Practitioner · XSS の主要パターン
01
Reflected XSS — 記事共有メッセージへの注入
うつろい journal の記事ページの
?shared_by パラメータが、エスケープされずに HTML に挿入される。最も基本的な Reflected XSS。02
Stored XSS — 商品レビュー欄
うつろい EC の商品レビュー機能。投稿されたレビューが他のユーザのページで実行される。攻撃者ビュー + 被害者ビューを並べて、永続化された攻撃の被害範囲を体感する。
03
DOM-based XSS — URL フラグメントから innerHTML 注入
うつろい journal の検索ページが
location.hash を innerHTML に展開。サーバを通らない、ブラウザ内で完結する XSS。04
Cookie 窃取 — Stored XSS から完全攻撃へ
Lab 02 から発展。alert ではなく
document.cookie を取得して攻撃者サーバへ送信する。HttpOnly が設定されていない場合の被害シナリオを再現。05
コンテキスト脱出 — 属性値の中で破られるエスケープ
うつろい予約サイトのお名前が href 属性内に展開。
< > はエスケープされるが " はエスケープされず、属性ブレイクアウトで XSS。