Your SlideShare is downloading. ×
0
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Jvn5132565
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Jvn5132565

389

Published on

AVTokyo2011 …

AVTokyo2011
Web-talk資料
JVN5132565 IEの文字化けでXSS
hoshikuzu|star_dust
※スッカスカ資料ですみません

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
389
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JVN#51325625 Internet Explorer における XSS の脆弱性 不確か且つ勝手に解説バージョン 11/14/11
  • 2. JVN#51325625 <ul><li>JVN#51325625 Internet Explorer における XSS 脆弱性 </li></ul><ul><li>IE6 には、 EUC-JP で記述された特定の文字列の処理に問題があり、クロスサイトスクリプティングの脆弱性が存在します。 </li></ul><ul><li>http://jvn.jp/jp/JVN51325625/ </li></ul>11/14/11
  • 3. JVN#51325625 <ul><li>文献 1: 文字と XSS の関係 (2006/06) </li></ul><ul><li>↑ 寺田健 氏 </li></ul><ul><li>http://ux.nu/UXAJh+ </li></ul>11/14/11 <ul><li>文献 2: 「 鷗 」が「乗ス」に化けるメカニズム (2006/11) </li></ul><ul><li>↑ 森山 将之氏 </li></ul><ul><li>http://ux.nu/gPGOj+ </li></ul>
  • 4. 「鷗」が「乗ス」に化けるメカニズム <ul><li>CP51932 と Unicode との変換の実現方法 </li></ul><ul><li>CP51932 -> Unicode </li></ul><ul><li>1. 文字列をアルゴリズム的変換で EUC から SJIS に変換 </li></ul><ul><li>2.CP932 から Unicode に変換 </li></ul>11/14/11
  • 5. 「鷗」が「乗ス」に化けるメカニズム <ul><li>ステップ 1 </li></ul><ul><li>x8FxECxBF をアルゴリズム的変換で EUC から SJIS に変換します。 </li></ul><ul><li>※ JIS X 0208 の 94( 区 )×94( 点 ) の範囲外のコードポイントは、変換されずに SJIS 文字列の中に残るような変換をします。 </li></ul><ul><ul><li>x8F -> x8F </li></ul></ul><ul><ul><li>xECxBF -> xE6xBD </li></ul></ul>11/14/11
  • 6. 「鷗」が「乗ス」に化けるメカニズム <ul><li>ステップ 2 </li></ul><ul><ul><li>x8FxE6xBD を CP932 から Unicode に変換 </li></ul></ul><ul><ul><li>x8FxE6 -> U+4E57 ( 乗 ) </li></ul></ul><ul><ul><li>xBD -> U+FF7D ( ス ) </li></ul></ul>11/14/11
  • 7. 彅による XSS ベクタ <ul><li>ステップ1 </li></ul><ul><li>0x8FBCF4 は、 JIS X 0212 (補助漢字)で、 3 バイトで 1 文字「彅」 </li></ul><ul><li>0x8F  -> 不明バイトなので変換無視 </li></ul><ul><li>0xBCF4  -> EUC の「儒」が 0x8EF2 ( SJIS の「儒」)に変換 </li></ul><ul><li>できあがったのは 0x8F8EF2 </li></ul>11/14/11
  • 8. 彅による XSS ベクタ <ul><li>ステップ2 </li></ul><ul><li>0x8F8EF2 を、 0x8F8E ( SJIS の「庶」)+ 0xF2 と解釈します。 </li></ul><ul><li>以上が、内部的にはユニコードへの変換時に中間的に発生しているらしい。 </li></ul><ul><li>余った 0xF2 が、意図せぬ作用(続く「“」文字を破壊するなど)を及ぼします。 </li></ul>11/14/11
  • 9. 変種のベクタもありうる <ul><li>「彅」が文字化けしてお尻に 0xF2 が余る。 </li></ul><ul><li>「 X 」が文字化けしてお尻に 0x3C が余る。 </li></ul><ul><li>「 X 」が文字化けしてお尻に 0x3E が余る。 </li></ul><ul><li>「 X 」が文字化けしてお尻に 0x3D が余る。 </li></ul><ul><li>「 X 」が文字化けしてお尻に 0x22 が余る。 </li></ul><ul><li>  いやぁ、手探りでも当てられるレベル。 </li></ul>11/14/11
  • 10. JVN#51325625 の ISO-2022-JP 版 <ul><li>ISO-2022-JP 版もある。 </li></ul><ul><li>ESC $ B [0xE0 0xA5] ESC ( B ⇒ [0x20 0x22] </li></ul><ul><li>ESC $ B [0xE0 0xBF] ESC ( B ⇒ [0x20 0x3C] </li></ul><ul><li>ESC $ B [0xE0 0xC1] ESC ( B ⇒ [0x20 0x3E] </li></ul>11/14/11
  • 11. JVN#51325625 の ISO-2022-JP 版 <ul><li>ISO-2022-JP 版の詳細は? </li></ul><ul><li>http://d.hatena.ne.jp/st4rdust/20110712/1310451704 </li></ul><ul><li>改修後にさらに出た ISO-2022-JP 関連 </li></ul><ul><li>MS10-090 ( http://jvndb.jvn.jp/ja/contents/2010/JVNDB-2010-000065.html ) </li></ul>11/14/11
  • 12. JVN#51325625 怖いですね <ul><li>ありがとうございました 勝手な解説なので 重要ポイントが抜けています。 </li></ul><ul><li>パッチが完全ではない恐れがあります。 </li></ul>11/14/11
  • 13. 補遺( LT 当日説明しきれなかったこと) <ul><li>EUC-JP 対策 後方互換も考えた上での提案 </li></ul><ul><ul><li>http://ux.nu/UXAJh </li></ul></ul><ul><ul><ul><li>3.2.2  文字集合の定義より </li></ul></ul></ul><ul><ul><ul><li>使用する文字集合を以下に絞るのが最善 </li></ul></ul></ul><ul><ul><ul><ul><li>改行・半角空白 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>JIS X 0201 (ラテン文字) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>JIS X 0208 (第一・二水準文字など </li></ul></ul></ul></ul><ul><ul><ul><ul><li>上記以外は REPLACEMENT CHARACTER に代替 </li></ul></ul></ul></ul>11/14/11
  • 14. 補遺( LT 当日説明しきれなかったこと) <ul><li>ISO-2022-JP 対策 後方互換込みの提案 </li></ul><ul><ul><ul><li>使用する文字集合を以下に絞るのが最善 </li></ul></ul></ul><ul><ul><ul><ul><li>改行・半角空白 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>JIS X 0201 (ラテン文字) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>JIS X 0208 (第一・二水準文字など </li></ul></ul></ul></ul><ul><ul><ul><ul><li>上記以外は REPLACEMENT CHARACTER に代替 </li></ul></ul></ul></ul><ul><li> ※全て文字参照にするのもひとつの方法 </li></ul><ul><ul><li>ユーザビリティに欠ける恐れがあることを忘れずに </li></ul></ul>11/14/11

×