PortSwigger Web Security Academy の GraphQL ラボ群を、日本語の美容EC文脈で再構成した教材です。Introspection 漏洩、フィールド単位の認可不備、ネスト深さ攻撃、batch DoS など GraphQL 特有の攻撃面を扱います。

全5問予定 Lab 01 公開 シミュレータ完結

教育目的のシミュレータです。攻撃の挙動はブラウザ内で完結し、外部システムへの影響はありません。

知識ベース — 前提知識と概念整理
Knowledge Base · 各ラボから参照される基礎
KB1
GraphQL の脆弱性
GraphQL の特徴、Introspection の漏洩、フィールド単位の認可、ネスト深さ・バッチクエリによる DoS、Persisted Queries による正しい防御。
Phase 1 — 基礎
Practitioner · 主要パターン
01
Introspection 漏洩から隠し mutation の発見
本番環境で Introspection が有効、フロントから呼ばれていない管理用 mutation が認可不備で発見・実行可能。
Practitioner
02
フィールド単位の認可漏れ
Product 型に supplier フィールドがあり、その先に contractPrice(卸売原価)が含まれる。一般会員クエリで取得可能。
準備中
03
ネスト深さ攻撃 DoS
user → friends → friends → friends... と深くネストするクエリでサーバの DB 結合を爆発させる。
準備中
04
GraphQL バッチクエリの認可バイパス
1リクエストに複数の operation を詰め込み、認可ミドルウェアの粒度の問題を突いて素通りさせる。
準備中
05
Aliasing による rate limit バイパス
GraphQL のフィールド alias で同じ resolver を1リクエスト内に大量呼び出し、rate limit をバイパスして総当たり。
準備中