漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0112062
漏洞标题:支付宝看我如何利用支付宝登录机制缺陷劫持登录用户帐号
相关厂商:阿里巴巴
漏洞作者: q601333824
提交时间:2015-05-05 06:53
修复时间:2015-06-23 21:46
公开时间:2015-06-23 21:46
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:8
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-05-05: 细节已通知厂商并且等待厂商处理中
2015-05-09: 厂商已经确认,细节仅向厂商公开
2015-05-19: 细节向核心白帽子及相关领域专家公开
2015-05-29: 细节向普通白帽子公开
2015-06-08: 细节向实习白帽子公开
2015-06-23: 细节向公众公开
简要描述:
像我这种屌丝支付宝帐号有跟没有一样,反正里面余额都是0
详细说明:
1.前途多难
2.支付宝有个检测已经登录的用户并且快速登录的功能,然后我抓取整个过程
3.登录机制大概是这样,检测已经正在登录使用的帐号,然后发送请求token,然后使用返回的token登录
4.所以,我复制了第一次请求token的连接
5.简化连接得到
6.ctoken这个参数根本没啥用,有跟没有一样,也能请求到token
7.所以简化后的请求过程就是
① https://passport.alipay.com/mini_login_check.js?callback=xxxxxx&site=1(请求token)
↓
②https://auth.alipay.com/login/havana_trust_login.htm?token=XXXXXXX&autoLogin=false(利用返回的token登录帐号)
-----------------------------------------------------------------------------------------------------
8. 然后根据这个大神的漏洞,跨域抓取用户token
WooYun: JS跨域抓取已登录的百度用户用户名和csrf token
9.如图,抓取到的token
-------------------------------------------------------------------------------------------
10.下面为了证明就算换浏览器,token也是能用的(token只能使用一次,使用一次之后就会失效,而且有时间限制)
①.先抓取用户的登录token,得到:1NCCpjOQlx3FnF-gEkKKjJQ
②.然后把这个连接token ,修改成刚才获取到token
https://auth.alipay.com/login/havana_trust_login.htm?token=1NCCpjOQlx3FnF-gEkKKjJQ&autoLogin=false
③.现在360极速浏览器,是登录着支付宝(不用打码了,反正余额0),火狐浏览器没有登录
④.看,当火狐浏览器访问那个连接的时候,我就能登录对方帐号了
---------------------------------------------------------------------------------------------
11.这个获取到的token,是有时间限制,时间一到就失效了,没计算,大概只有一分钟左右,那别人说,那肯定没有用了,那不一定没用,可以设置页面刷新,当用户访问的时候,一直刷新页面,然后每次刷新把结果发送到我新浪平台的日志
12.于是最终的利用代码:
(1).这一段是,获取支付宝用户的token,然后创建一个img标签,把token当作参数访问自己的网站,在日志留下记录
(2).这一段代码是,iframe里面放第一段代码的src,然后一直刷新当前页面,保持最新的token,同时把最新的token,发送到网站的日志(这个是本地测试)
13.效果图,如图
①.当用户访问,一直刷新页面获取最新的token,发送到网站日志
②.
--------------------------------------------------------------------------------------------------
14.利用方式就是,在和别人交易的过程中,给别人连接,别人访问之后一直刷新页面,获取支付宝的登录token,然后只要在这一分钟之内访问连接,不会失效,就能登录别人帐号,因为交易过程把握一分钟间隔很容易实现
漏洞证明:
1.获取用户的token ,并且发送到网站的日志记录下来
2.当别人访问的时候,可以设置一段刷新页面的代码,一直保持最新的token参数
3.①.当用户访问,一直刷新页面获取最新的token,发送到网站日志
②.
4.利用方式就是,在和别人交易的过程中,给别人连接,别人访问之后一直刷新页面,获取支付宝的登录token,然后只要在这一分钟之内访问连接,不会失效,就能登录别人帐号,因为交易过程把握一分钟间隔很容易实现
修复方案:
1.token的失效时间再短一点,如果是在交易的时候访问劫持页面,这点时间足够拿到别人帐号了
2.和这个类似 WooYun: 百度贴吧某功能CSRF漏洞callback参数问题
版权声明:转载请注明来源 q601333824@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2015-05-09 21:45
厂商回复:
漏洞已经在处理。感谢您对阿里巴巴安全的关注!
最新状态:
暂无