漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2012-09732
漏洞标题:百度首页Xss后门-可对用户进行持久劫持
相关厂商:百度
漏洞作者: gainover
提交时间:2012-07-16 18:12
修复时间:2012-08-30 18:13
公开时间:2012-08-30 18:13
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2012-07-16: 细节已通知厂商并且等待厂商处理中
2012-07-17: 厂商已经确认,细节仅向厂商公开
2012-07-27: 细节向核心白帽子及相关领域专家公开
2012-08-06: 细节向普通白帽子公开
2012-08-16: 细节向实习白帽子公开
2012-08-30: 细节向公众公开
简要描述:
百度首页某处代码存在缺陷,导致Xss,结合www.baidu.com域下的其它Xss,可以在百度首页 实现Xss后门,从而对用户进行长久的劫持。危害很明显:受害者每次打开百度首页都会触发Xss,从而将登录信息发送给俺~~
详细说明:
1. 一直想对百度首页的这个导航功能下手,前面测试过几次,都无果。
2. 今天又手痒了,就去试了试。 首先添加一个网址。
3. 抓包,可以看到,url和name应该是可控内容。
4. 首先往url里添加了 ", > 等字符进行测试,返回错误,这说明百度在这里过滤了这些可能导致危险的特殊字符。
5. 然后我又测试了一下">,发现可以添加。
6. 但是服务器端并没有对">做什么特殊处理,该怎么输出,还是怎么输出,这样我们就没办法利用这点了。
7. 到这里,我就放弃了,打算清理战场走人,但是意外发生了。
什么意外呢?我发现,这里的2个按钮都点不了了。。如图:
8. 直觉告诉我,我加入的">一定导致了代码的某处出现问题了,从而导致按钮失效。
9. 于是开启浏览器的调试功能,刷新首页,弹出了错误提示!
可以看到是下面这句发生了问题。
10. 进一步查看局部变量a的内容,可以发现 a 就是我们添加的链接数据。
定位到我们刚刚添加的那个链接处,发现了亮点, " 竟然变成了 \"
11. 顿时明了了。 我们可以推测出百度开发人员大致的代码逻辑。
12. 基于10和11,我们知道了"会变为",因而不难构造出利用代码。
13. 最后,步骤9中的a变量的内容,大概是以下形式。
..."url":"http://qzone.qq.com/","wooyun":(function(){alert(document.cookie)})(),"wooyun2":"",...
而后,被 eval("("+a+")"),从而执行我们的alert(document.cookie);
----------------------------------------------
14. 确定存在以上后门缺陷之后,我们进而找到www.baidu.com的某Flash Xss。
利用我在这里提到的技巧:http://zone.wooyun.org/content/368
构建以下利用代码。
15. 当受害者打开 http://xsst.sinaapp.com/baidurookit.php 时,会调用
http://xsst.sinaapp.com/baidurookit.js
16. 以上代码,会自动给受害者在百度首页加上一个含有恶意代码的连接。从而调用我们自己的JS代码,获取受害者信息。
效果见漏洞证明!
漏洞证明:
修复方案:
在读取 textarea的value之后,对"也进行转义!
版权声明:转载请注明来源 gainover@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:16
确认时间:2012-07-17 11:29
厂商回复:
xss与csrf的结合,原本添加链接处的csrf已经修复过,但以此来看修复并不完全,而对于XSS的过滤也并不全面,感谢gainover的提交,我们会尽快修复。
最新状态:
2012-07-17:更正下是XSS 与 flash xss的结合 少看了段代码 感谢gainover