当前位置:WooYun(白帽子技术社区) >> xss >> 7500刀的accounts.google.com域下XSS分析

7500刀的accounts.google.com域下XSS分析

gainover (">_< ' / & \ 看啥,没见过跨站字符么) | 2013-06-19 22:14

GOOGLE现在XSS已经涨到3100~7500了,然后某著名日本猥琐流就发了一个accounts.google.com域下的XSS,在微博上看到@xisigr在新浪微博上发了链接,就去看了下,虽然看不懂日文,但还是分析了下。

原文链接:

http://masatokinugawa.l0.cm/2013/06/accounts.google.com-utf-32-xss.html

具体分析如下:

原本的缺陷地址为:https://accounts.google.com/NewAccount?oe=utf-32&Email=%E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert%281%29%E3%B0%80/script%E3%B8%80

根据我自己的理解,其中,oe参数应该是用来指定字段的输出编码(output encoding), email为输入,经过oe所指定的编码进行转换后,输出到页面的 <input type="text" value="[Email]" /> 里。

更简单的说就是, 如果我们Email输入  AAAAAA, oe=gbk 的情况下,  AAAAAA --> 转换为 gbk 编码 --> GBK编码下的[AAAAAAA] ,再输出到页面上。

于是,于是,漏洞发现者就猥琐了一把。。。

按照作者的思路,

1.首先, 将输出编码设置为 UTF-32。

UTF-32中,每4个字节表示一个字符, 比如

双引号 --> [0x00][0x00][0x00][0x22]
<括号 --> [0x00][0x00][0x00][0x3C]
>括号 --> [0x00][0x00][0x00][0x3E]

那么更好玩的是,在UTF-32中,这样也是有效字符:

[0x00][0x00][0x22][0x00] --> ∀
[0x00][0x00][0x3C][0x00] --> 㰀
[0x00][0x00][0x3E][0x00] --> 㸀

因而如果我们用上面这3个“怪怪”的字符来代替双引号和尖括号对的话,会出现什么情况呢?

"<script>alert(1)</script>

变为

∀㸀㰀script㸀alert(1)㰀/script㸀

2. 接着:∀㸀㰀script㸀alert(1)㰀/script㸀 ,在被转换为UTF-32编码后,输出到UTF-8编码的页面中,会输出为以下形式:

[0x00][0x00]"[0x00][0x00][0x00]<[0x00]script[0x00][0x00]>[0x00]alert(1)[0x00][0x00]<[0x00]/script[0x00][0x00]>[0x00]

3. 而在IE10以下的版本(未测试IE9,原文中截图为IE9,应该可以执行),HTML中的 [0x00] 会被无视掉,从而导致上面的代码被当作普通HTML执行。

空字节[0x00]不会影响上述代码的执行,具体见demo: http://xsst.sinaapp.com/nullbyte.htm

4. 为了更直观的看到这个漏洞,写了一个PHP页面,大家自行实验。

http://xsst.sinaapp.com/utf-32-1.php?charset=utf-32&v=%E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert(1)%E3%B0%80/script%E3%B8%80

分享到:
  1. 1#
    回复此人 感谢
    Cr4zy | 2013-06-19 22:16

  2. 2#
    回复此人 感谢
    小龙 | 2013-06-19 22:36

    膜拜

  3. 3#
    回复此人 感谢
    xsser (十根阳具有长短!!) | 2013-06-19 22:38

    一直以为utf-8作为输入是没有问题的... 没想到转成utf-32会有问题 需要检查一批开源代码了

  4. 4# 感谢(1)
    回复此人 感谢
    lucky (一天一洞) | 2013-06-19 22:48

    真强呀

  5. 5#
    回复此人 感谢
    Ra1nker ((麻麻说,签名要长……)‮) | 2013-06-19 22:51

    膜拜

  6. 6#
    回复此人 感谢
    叽叽歪歪 (?) | 2013-06-19 23:14

    又长姿势了,狗猥琐啊

  7. 7#
    回复此人 感谢
    pfdz | 2013-06-19 23:17

    2. 接着:∀㸀㰀script㸀alert(1)㰀/script㸀 ,在UTF-32编码的页面中,会输出为以下形式:
    这地方是输出到UTF-8编码的页面中吧??@gainover

  8. 8#
    回复此人 感谢
    Nicky (安卓安全中文站 www.droidsec.cn) | 2013-06-19 23:25

    ..额 目测很多站的过滤规则又得更新了

  9. 9#
    回复此人 感谢
    gainover (">_< ' / & \ 看啥,没见过跨站字符么) | 2013-06-19 23:30

    @pfdz 恩,描述有误,我改改~

  10. 10#
    回复此人 感谢
    小胖胖要减肥 | 2013-06-19 23:52

    @gainover 而且这个也是绕过ie拦截器的 那就是说ie9的0day?

  11. 11#
    回复此人 感谢
    Getshell | 2013-06-19 23:57

    碉堡了!!!

  12. 12#
    回复此人 感谢
    齐迹 (sec.zhubajie.com 欢迎来撸) | 2013-06-20 00:01

    ie8 也中枪了。不过一般的国产网站极少使用此编码把!

  13. 13#
    回复此人 感谢
    gainover (">_< ' / & \ 看啥,没见过跨站字符么) | 2013-06-20 00:46

    @小胖胖要减肥 这是个特例。利用了IE的某些BUG特性,但与绕过过滤器还不太能扯上关系。

  14. 14#
    回复此人 感谢
    0x_Jin (世上人多心不齐) | 2013-06-20 01:29

    次奥 这样也可以 果然够猥琐

  15. 15#
    回复此人 感谢
    px1624 (aaaaaaaaa) | 2013-06-20 09:01

    @gainover 那岂不是蛮多网站都会存在此反射型xss了、

  16. 16#
    回复此人 感谢
    Adra1n | 2013-06-20 09:58

    这个牛了。。。

  17. 17#
    回复此人 感谢
    Csser | 2013-06-20 09:59

  18. 18#
    回复此人 感谢
    小胖胖要减肥 | 2013-06-20 10:28

    @gainover 恩  多谢二哥解惑

  19. 19#
    回复此人 感谢
    呆子不开口 (求各种兼职) | 2013-06-20 14:52

    楼主,我给你加精了,速去湖南卫视领奖

  20. 20#
    回复此人 感谢
    折羽鸿鹄 (朝闻道,夕死可矣。) | 2013-06-20 15:29

    CHERME急速无压力

  21. 21#
    回复此人 感谢
    松子 | 2013-06-20 15:42

    chrome firefox 表示失望。

  22. 22#
    回复此人 感谢
    Sogili (.) 长短短 (.) | 2013-06-20 16:03

    牛逼.

  23. 23#
    回复此人 感谢
    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2013-06-20 16:05

    Chrome无压力

  24. 24#
    回复此人 感谢
    blast | 2013-06-21 08:18

    太萎缩了。。

  25. 25#
    回复此人 感谢
    wefgod (求大牛指点) | 2013-06-21 09:04

    IE9可以

  26. 26#
    回复此人 感谢
    wefgod (求大牛指点) | 2013-06-21 09:42

    7500刀,纠结啊。一年的工资都难有那么多啊

  27. 27#
    回复此人 感谢
    NoKing | 2013-06-21 20:01

    其实,IE的漏洞挺多的,我记得上个月,IE的URL中,“?”后的内容全部没有URL转码。。。

  28. 28#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2013-06-21 20:07

    @‫‫‌ This is a Test.!  sogiligainover

  29. 29#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2013-06-21 20:08

    @Sogili This is a Test.!  sogiligainover

  30. 30#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2013-06-21 20:08

    @Sogili This is a Test.!  Sogili gainover

  31. 31#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2013-06-21 20:09
  32. 32# 感谢(1)
    回复此人 感谢
    过客 | 2013-06-22 21:16

    @gainover 二哥解释有问题,不是输出到 UTF-8 的页面,而是 IE 不支持 UTF-32,把 UTF-32 当成 UTF-8 解码了

  33. 33#
    回复此人 感谢
    gainover (">_< ' / & \ 看啥,没见过跨站字符么) | 2013-06-23 02:27

    @过客 输出到UTF-8的页面,是指页面是UTF-8编码。 “ IE 不支持 UTF-32,把 UTF-32 当成 UTF-8 解码”这句确实需要加上,原文里,将浏览器UTF-32的支持情况给出来了,我没写过来。

  34. 34#
    回复此人 感谢
    NoKing | 2013-06-24 09:09

    你们说,百度搜索里的参数“ie”会不会与这里的“oe”同一个效果?

  35. 35# 感谢(1)
    回复此人 感谢
    Passer_by (腾讯微博的Passer-by不是我) | 2013-06-25 17:30

    niub

  36. 36#
    回复此人 感谢
    流影 (白帽子是啥?) | 2013-07-03 19:11

    μ牛

  37. 37#
    回复此人 感谢
    My5t3ry | 2013-09-08 16:22

    mark

  38. 38#
    回复此人 感谢
    才情岁月 (再牛X的梦想,也抵不住傻X似的坚持!) | 2013-09-11 10:13

    思路很不错!学习了!

  39. 39#
    回复此人 感谢
    dren | 2013-09-11 15:26

    NB

  40. 40#
    回复此人 感谢
    牛牛 | 2013-10-25 20:32

    二哥V5啊 学习了

  41. 41#
    回复此人 感谢
    微信公众号 | 2013-10-25 21:49

    这是不是会成为刷rank的节奏

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录