web-dev-qa-db-ja.com

SVGを使用してHTML imgタグでXSSを実行する方法はありますか?

<img src="">タグ付きのWebページに表示されるSVGファイルを使用して、最新のブラウザーでXSSを実行するための実用的なテクニックはありますか?

<script>タグなしで実行する方法は知っていますが、XSSを機能させるために別のタグを使用しようとするとXMLが壊れるため、SVGなどを使用してファイルをロードする方法がわかりません。

これは実際に可能ですか?

5
Mega

いいえ、ちがいます。 SVGファイルにはJSを含めることができますが( this を参照)、これらは次の場合にのみ実行されます。

  1. ユーザーがブラウザで.svgファイルに直接アクセスする
  2. 画像は<embed>タグ内に埋め込まれます。

最新のブラウザーは、<img>タグ内にある場合、SVGでスクリプトを実行しません。

また、上記の2つの場合でも、サーバーはそのようなスクリプトの実行を停止するCSPヘッダーを提供できます。

6
undo