知識ベース — 前提知識と概念整理
Knowledge Base · 各ラボから参照される基礎
KB1
GraphQL の脆弱性
GraphQL の特徴、Introspection の漏洩、フィールド単位の認可、ネスト深さ・バッチクエリによる DoS、Persisted Queries による正しい防御。
Phase 1 — 基礎
Practitioner · 主要パターン
01
Introspection 漏洩から隠し mutation の発見
本番環境で Introspection が有効、フロントから呼ばれていない管理用 mutation が認可不備で発見・実行可能。
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 をバイパスして総当たり。