File upload preview XSS
アップロードされた SVG、XML、HTML ファイルをプレビュー表示するとき active content が実行されるか確認します。
HTML payload テスト
このシナリオは iframe sandbox ではなく、ユーザー入力が HTML/DOM にどう描画されるかを検証します。
- アップロードファイルを同一 origin で HTML として開かないか確認
- SVG は画像としてのみ提供するか、別 download domain / attachment header を使うか確認
- MIME sniffing 防止のため Content-Type と X-Content-Type-Options を設定するか確認
Payload
コピーする payload
SVG が img のみで使われるか、inline/object/embed で描画されるか確認します。
プレビュー
このプレビューは学習用に意図的に unsafe rendering を行います。実サービスでは payload はテキストとしてエスケープされるか除去されるべきです。
ログ
// ログなし
解説
- File upload XSS は stored XSS に近く、添付 preview、download domain、管理者 review tool に攻撃面が広がります。
- SVG は画像に見えますが XML 文書です。inline rendering、object/embed、不正確な MIME type で active content 問題が起きます。
- ユーザー upload は可能なら cookie のない別 domain から提供し、HTML が inline 実行されないよう attachment/MIME policy を固定します。