- 2008-09-29 (月)
- 技術
IEでUTF-7なスクリプトをiframeの中に表示するとXSSが発生するメモです。
あんまりこの話には詳しくないので、今後の調査材料として残しときます。
(※一応悪用厳禁であります!)
iframe内のエンコードが正しく指定されていない場合は、そのiframeの親にあたる部分のエンコードが自動的に適用されるというIEのバグがあるみたい。
今回はそれのちょこっとした検証!
1番初めに呼ばれるhtml(①.html)
iframe内で呼ばれるGetメソッド
結果
doGetメソッド内でエンコードを正しく設定せずにレスポンスしているため、IEでalertが表示される。
その他の実験まとめ
- 「①.html」ではなくiframeのパスを直接呼んだ場合はscriptは実行されない
-
「①.html」にmetaタグを正しく指定すればscriptは実行されない
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
ただしutf-7を指定した場合はscriptは実行される(まぁそうだろうな)<meta http-equiv='content-type' content='text/html;charset=utf-7'>
-
サーバー側でエンコード指定してもIEが解釈できないエンコードの場合はscript発生
arg1.setContentType("text/html"); arg1.setCharacterEncoding("utf8"); //正しくはutf-8 - 当たり前だがiframe内のhtmlに正しくmetaタグを指定すればscriptは実行されない
このお話はなかなか奥が深くてむずかしいですね。
とにかくIEに依存した Webアプリケーション セキュリティのプレゼン資料を見て勉強するしかなかそうです!
■参考にさせていた資料
・IEに依存した Webアプリケーション セキュリティ
・そろそろ UTF-7 について一言いっとくか - 葉っぱ日記
・まだまだあるクロスサイト・スクリプティング攻撃法:ITpro
・36. UTF-7とクロスサイト・スクリプティング:ITpro
Trackback:0
- TrackBack URL for this entry
- http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1131
- Listed below are links to weblogs that reference
- UTF-7でスクリプトを実行させるXSSについて from HouseTect, JavaScriptな情報をあなたに





