HTTPヘッダインジェクションを使用したXSSの可能性について考える
恐らく、現時点でMIcrosoftがサポートを継続しているIEでは不可能です
HTMLの属性値として埋め込まれるスクリプト(onXXXX 系のイベントハンドリング用の属性値)は、metaもしくはHTTPヘッダの Content-Script-Type で記述言語を指定する(デフォルトはJavaScript)ということになっています。
そこで、HTTPヘッダインジェクションでページの作者の意図したものと違う記述言語を指定した Content-Script-Type 指定を注入してやると、
- ページ作者の意図:JavaScript
- 実際に動作する言語:VBScript
のような状態に陥れることが出来るかもしれません。
そこで2つの言語のエンジンの実装の相違を突くと、
任意のスクリプトを実行させることが可能になるような感じがします。
実際のところ
といった攻撃のほうが簡単なのでわざわざこんな手の込んだ攻撃をする人は多分いないでしょう。
試してみた
- 手元のIE8はContent-Script-Typeを無視してJavaScriptとして実行しているようだ
- Windows2000上のIE6SP1もContent-Script-Type無視っぽい
重複削除
手違いで更新にするべきところを新規に公開しまったので古い方(12/18分)は削除しました