百度首页某处代码存在缺陷,导致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代码,获取受害者信息。
效果见漏洞证明!