これは質問のコメント欄ですでに指摘しましたが、実際の回答としてはより適切だと思います。
CSS
実際の XSS の脅威とは別に、ユーザー入力をページのスタイル タグに渡すことで、攻撃者にとって他の一連の機会が開かれます。中には単純な css を使用するだけのものもあります。
要素を に設定するとposition: absolute;
、ページ全体をオーバーレイできます。opacity:0;
これは、(たとえば)使用不能にするために使用される可能性があります。または、攻撃者がページ全体の改ざんに使用する可能性があります。:before
やのような CSS3 プロパティを使用する:after
ことで、CSS を介してページにコンテンツを配置することもできます。
もう 1 つの結果は「クリックジャッキング」である可能性があります。これは、実際にはStackOverflow ですでに議論されています。
XSS
純粋な XSS に関して言えば、最新のブラウザーでこれを使用するのは難しいでしょうが、それでも不可能とは言えません。とにかく、Internet Explorer 7 などの古いブラウザでは、これが攻撃に使用される可能性があります。非常に独創的な XSS インジェクションがあり、難読化され、最もクレイジーな方法でデコードされて、入力検証を裏切りました。これは、いくつかの (現在の) 古いブラウザーではまだ解析中であるため、依然として成功します。これを考慮して、最新のブラウザーでは問題が大幅に改善されました。
さらに、 や などの関数がexpression()
ありbackground-image:url
、古いバージョンの Firefox、IE7 以前、およびおそらく他のブラウザーの CSS でスクリプトの実行が可能になりました。
OWASP XSS 防止のチート シートには実際に、これらの関数が style - tags および style - 属性で使用される例がリストされています。
スクリプトレス攻撃(最新のブラウザーでも機能する可能性があります!)
古いブラウザーと XSS はさておき、ここで適用できる可能性のある方法は他にもあります。主に「スクリプトレス攻撃」の形です。詳細に入ると範囲が広がりますが、このトピックに関する優れたプレゼンテーションがあり、最新のブラウザーでさえどのように影響を受けるかについてのいくつかの方法と良い例を提供しています. もう 1 つの例は、CSS がクロス サイト リクエスト フォージェリに使用されたこのブログ投稿です。(リンクを提供してくれた @BenjaminGruenbaum に感謝します)
最後に、スクリプトの挿入に関して非常に巧妙な攻撃者がどのように取得できるかについての優れた洞察については、http: //www.thespanner.co.uk/ を参照することをお勧めします。たとえば、「IE7 および Firefox (バージョンは指定されていません)」で動作すると述べられている style-attribute での XSS のかなりワイルドな例さえあります。
だから、そのようなことをするときは本当によく気をつけてください、人々はまだ道を見つけるかもしれません...