当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-049380

漏洞标题:一个XSS获得海量用户淘宝+支付宝详细信息(闷声作大死系列1)

相关厂商:阿里巴巴

漏洞作者: 专注XSS三十年

提交时间:2014-01-20 19:58

修复时间:2014-03-06 19:58

公开时间:2014-03-06 19:58

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-01-20: 细节已通知厂商并且等待厂商处理中
2014-01-21: 厂商已经确认,细节仅向厂商公开
2014-01-31: 细节向核心白帽子及相关领域专家公开
2014-02-10: 细节向普通白帽子公开
2014-02-20: 细节向实习白帽子公开
2014-03-06: 细节向公众公开

简要描述:

都是一些很容易取得的API的一个组合应用。
从技术角度说也就1RANK,不过从综合起来的危害性来说,20也不过分。
从一个普通的反射型XSS注入点,获取用户淘宝资料(详细地址,联系人,联系电话,购买记录)及支付宝资料(余额,银行卡绑定信息,联系人信息,近期转账账户)。
这其实是2013年1月份发现并调试的,如今整整一年过去了,我回头再看,居然一切还在。
获取支付宝信息不需要用户登录支付宝,只需要淘宝是登陆状态。
最终包装完是一个简单的IFREAME,直接挂在任何流量广告位上即可坐收帐号。[当然不会给你这个成品,不过我是实际测试过的]
*** 不仅仅是支付宝,包括其它同行业也请重视这个问题。虽然拿不到淘宝密码和支付宝密码,可是能得到的所有信息已经足够造成很大危害了,特别是详细地址和电话已经威胁到用户线下的人身安全 希望引起重视!!! *****

详细说明:

先说一下思路。不感兴趣的直接跳到下面看漏洞证明。
XSS最大的困难在于突破域名。淘宝和支付宝是在两个不同的主域名下,可以说几乎没有可能从本域名下取得其它域名的内容。
但是淘宝后台提供了一个方便用户的功能,可以让淘宝已登录用户直接一键免登转入支付宝,新版淘宝更是直接嵌入了登录转向页面,登录到淘宝后台就直接等于登录了支付宝后台。
这样就使得在淘宝下的XSS获取支付宝的敏感信息成为了可能。而悲哀的是,支付宝域名下的所有API都没有加TOKEN认证,而且没有做域名限制,我们可以在外网任意引用。我完全想不通支付宝为何是这样设置的,难道是认为HTTPS连接很安全?
测试1:外网查询你的支付宝余额:
将以下代码保存成HTML文件,支付宝登陆状态下打开即可显示。

<script type="text/javascript">  
function xss(result)
{
alert("money:" + result.availableAmount);
}
</script>
<script type="text/javascript" src="https://lab.alipay.com/user/assets/queryBalance.json?_callback=xss"></script>


这是支付宝若干API中最重要也是调用最简单的一个。其它包括转账列表啊,最近转账用户啊,等等这些API随便抓一下都能直接用。
那么有人说这要限制支付宝登陆状态才能获得,而且支付宝登陆大家都知道过期是很快的,根本不实用,谁会随时随地登录着支付宝。
是的,没错,所以就涉及到下一个重要的API,也就是从淘宝登陆转向到支付宝登陆状态。
对于淘宝卖家帐号来说很容易,因为卖家后台直接有一个API转向支付宝。但是我们要考虑淘宝普通用户,所以使用下面这个方法。
http://member1.taobao.com/member/fresh/account_management.htm
在淘宝的这个页面上,有显示淘宝所绑定的支付宝,并且有一个很和善的按钮,写着“进入支付宝”,点击了就能变成支付宝登陆的状态。
那我们所要做的就是弄一IFRAME,来直接框架转向之后的地址。我们不需要知道它转向之后的页面内容,只是要让它转向而已,所以用IFRAME就行了,没必要死在AJAX跨域上。
但是要转向之前必须要取得一个关键参数,因为转向的连接大概是这样:
https://lab.alipay.com/user/i.htm?src=yy_taobao_gl_01&sign_from=3000&sign_account_no=XXXXXXXXXXX
其中有个 sign_account_no ,这个玩意我们要取得。这个其实就在按钮连接的源码里,所以读取这个页面的源码就行了。AJAX我们都知道不能跨域,所以就涉及到我们需要一个淘宝下的XSS注入点。
换句话说,只要我们取得了任何一个taobao.com域名下的XSS,我们就能获得我简介之中所说的一切。而我找的更简单,我找了member1.taobao.com 下的一个注入点,这样就更加完全不用考虑domain了。

http://member1.taobao.com/member/autoReglogin/auto_reglogin.htm?reg_type=0&is_need_login=false&is_need_reg=false&from=autoReglogin&dis_title=false&callback=a()};eval(location.hash.slice(1));a=function(){alert&auto_iframe_height=#alert(1)


这就是注入点。XSS脚本在最后#号后面,通过前面的eval(location.hash.slice(1))来执行。
在这里可以构造一个XSS读取支付宝绑定信息页面的源码,进而取得关键的sign_account_no,然后同样利用这个页面,把这个地址框架进去,做一点延时来等待支付宝转入完毕,然后再通过CSRF读取支付宝下的API来获取大量详细信息。同时这个淘宝的注入点可以读取任意淘宝下的页面,所以用户的淘宝设置也全是透明的。
这就是一切的开端。

漏洞证明:

说明:以下数据在当时截图后就已删除!仅为安全研究测试,去年到现在期间辗转多个服务器,早已未有任何数据留存!

1.jpg


1.jpg


2.jpg


3.jpg

修复方案:

。。。。。为何支付宝API不放任何限制?这些数据完全可以做很多事情,而且是不限于线上的。
年底了,求个礼物不过分吧。

版权声明:转载请注明来源 专注XSS三十年@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2014-01-21 13:38

厂商回复:

感谢你对我们的支持与关注,该问题我们正在修复中。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-01-20 20:05 | 银狼_avi ( 实习白帽子 | Rank:55 漏洞数:13 | 本屌十二岁破处)

    牛X

  2. 2014-01-20 20:14 | adm1n ( 普通白帽子 | Rank:216 漏洞数:66 | 只是一个渣渣而已。。。)

    坐等续集~

  3. 2014-01-20 20:24 | J′aron ( 路人 | Rank:17 漏洞数:5 | 问题真实存在但是影响不大.)

    坐等续集~

  4. 2014-01-20 20:26 | Coody 认证白帽子 ( 核心白帽子 | Rank:1565 漏洞数:189 | 不接单、不黑产;如遇接单收徒、绝非本人所...)

    誰的马甲?

  5. 2014-01-21 00:51 | cmd2k ( 路人 | Rank:4 漏洞数:1 | 学习,努力,加油)

    坐等

  6. 2014-01-21 08:34 | 0x004er ( 实习白帽子 | Rank:48 漏洞数:19 | 。。。。。。。)

    mark

  7. 2014-01-21 08:44 | 中粮我买网(乌云厂商)

    这个牛B。。围观一下。

  8. 2014-01-21 08:45 | 隐形小桃 ( 路人 | Rank:8 漏洞数:4 | 桃ちゃんかわいい!!!)

    马克 坐等

  9. 2014-01-21 09:25 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    马克一下

  10. 2014-01-21 09:34 | nsbreak ( 路人 | Rank:6 漏洞数:2 | Hello world!)

    Mark

  11. 2014-01-21 10:12 | 冷静 ( 路人 | Rank:3 漏洞数:2 )

    我打赌RANK不超过3

  12. 2014-01-21 10:36 | Bloodwolf ( 实习白帽子 | Rank:47 漏洞数:8 | whoami)

    我打赌RANK不超过-1

  13. 2014-01-21 10:56 | 1ee ( 普通白帽子 | Rank:105 漏洞数:14 | 看书中....)

    楼主是用Json hijacking ?@专注XSS三十年

  14. 2014-01-21 11:17 | 专注XSS三十年 ( 实习白帽子 | Rank:39 漏洞数:11 | 11)

    @1ee 哎呀你们这些大牛就是懂专业名词。我都不知道是什么意思呢 (娇羞笑)

  15. 2014-01-21 11:17 | 专注XSS三十年 ( 实习白帽子 | Rank:39 漏洞数:11 | 11)

    @Bloodwolf 太过分了=A=你这是要扣我分么

  16. 2014-01-21 11:34 | 啦绯哥 ( 普通白帽子 | Rank:107 漏洞数:20 )

    @1ee 楼主的xss应该不涉及json

  17. 2014-01-21 12:09 | Bloodwolf ( 实习白帽子 | Rank:47 漏洞数:8 | whoami)

    @专注XSS三十年 楼主这是要逆天啊!

  18. 2014-01-21 12:30 | Jeremy ( 普通白帽子 | Rank:106 漏洞数:11 | )

    厂商都坐等了,我等屌丝不得不等。

  19. 2014-01-21 13:20 | 1ee ( 普通白帽子 | Rank:105 漏洞数:14 | 看书中....)

    @专注XSS三十年 - -,大哥私聊求交流

  20. 2014-01-21 13:21 | 1ee ( 普通白帽子 | Rank:105 漏洞数:14 | 看书中....)

    @啦绯哥 - -可能把,不过楼主说的好像

  21. 2014-01-21 13:28 | 齐迹 ( 核心白帽子 | Rank:784 漏洞数:100 | 一名普通的phper开发者,关注web安全。)

    不愧是 专注XSS三十年!

  22. 2014-01-22 15:32 | Mr.Zhang ( 路人 | Rank:8 漏洞数:2 | 乌云上的段子手)

    马克 坐等

  23. 2014-01-22 16:12 | Leon ( 路人 | Rank:25 漏洞数:6 | 永无宁日啊)

    坐等续集~

  24. 2014-02-19 13:49 | 袋鼠妈妈 ( 普通白帽子 | Rank:449 漏洞数:61 | 故乡的原风景.MP3)

    不愧是 专注XSS三十年!

  25. 2014-02-20 14:04 | 裙下的秘密 ( 实习白帽子 | Rank:83 漏洞数:9 | )

    真的是专业的 -。-

  26. 2014-02-21 15:57 | 核攻击 ( 实习白帽子 | Rank:35 漏洞数:7 | 统治全球,奴役全人类!毁灭任何胆敢阻拦的...)

    What The Fuck,......赞一个!!!

  27. 2014-03-06 22:53 | Pooke ( 路人 | Rank:0 漏洞数:1 | 菜鸟团撸过。)

    洞主下次开大号来吧。

  28. 2014-03-07 08:46 | 浮萍 ( 普通白帽子 | Rank:555 漏洞数:118 | 默默潜水)

    看到金水区

  29. 2014-03-07 16:29 | oldcat ( 实习白帽子 | Rank:88 漏洞数:14 )

    求作大死系列2