偽ログインフォーム (フィッシング)
iframe 内に親サイト風のログインフォームを描き、入力値を iframe 自身の origin で収集します。
sandbox ポリシー別の挙動
| ポリシー | 想定結果 |
|---|---|
| sandbox 未指定 | 動作 |
sandbox="allow-scripts" | 動作 |
sandbox="" (最も厳格) | 部分動作 |
Embed スニペット
このスニペットは埋め込み専用ページを使用します。自サービスに貼り付けてレンダリング/ブロックの挙動を確認してください。
<iframe src="https://xss-playground.com/embed/phishing-form?lang=ja" title="XSS Playground - 偽ログインフォーム (フィッシング)" width="600" height="420" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
実攻撃ではこの iframe を親ページ内のモーダルやログイン領域のように配置します。ユーザーは domain が attacker.example であることに気づきにくくなります。
偽ログインフォーム (自分の origin 内で自由に描画)
取得ログ
// ログなし
解説
- iframe 内のフォームは自分の origin のページなので、任意の UI を描画し、値を自分のサーバーへ送れます。SOP とは無関係です。
sandbox="allow-scripts"だけでも通常の form submit は止まりますが、JS で値を集めて fetch することは可能です。sandbox=""で JS も止める必要があります。- 最も強い対策は iframe src の host allowlist です。