漏洞起因:百度是国内最大的中文搜索引擎。同时百度也提供了百度空间、百度贴吧等BLOG社区服务,拥有海量的用户群,号称全球最大中文社区。80sec发现过百度产品一系列的安全漏洞,其中一些问题得到了有效的修补,但是百度的产品仍然存在很多严重的安全漏洞,利用这些漏洞黑客可以制作Web蠕虫,影响百度所有的用户。
CSRF worm技术分析:
一. 百度用户中心短消息功能存在CSRF漏洞
百度用户中心短消息功能和百度空间、百度贴吧等产品相互关联,用户可以给指定百度ID用户发送短消息,在百度空间用互为好友的情况下,发送短消息将没有任何限制,同时由于百度程序员在实现短消息功能时使用了$_REQUEST类变量传参,给黑客利用CSRF漏洞进行攻击提供了很大的方便。百度用户中心短消息功能的请求参数能够被完全预测,只需要指定sn参数为发送消息的用户,co参数为消息内容,就可以成功发送短消息,如下:
http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=用户账号&co=消息内容
该漏洞在07年被应用于80SEC测试的百度XSS WORM中,至今尚未修补。
二. 百度空间好友json数据泄露问题
百度空间的好友功能数据是使用json格式实现的,此接口没有做任何的安全限制,只需将un参数设定为任意用户账号,就可以获得指定用户的百度好友数据,如下
http://frd.baidu.com/?ct=28&un=用户账号&cm=FriList&tn=bmABCFriList&callback=gotfriends
该漏洞可以直接被Javascript劫持技术利用,获取用户的好友信息.
三. 百度认证问题
web攻击不可避免地依赖于系统的认证,而在百度的认证系统里,所有认证基于SESSION,这样在IE里就不会被IE的隐私策略阻止,会话认证信息每次都会被发送出去,为我们蠕虫的传播提供了必要的条件。
四. CSRF JavaScript_Hijacking Session Auth= CSRF worm
CSRF攻击结合Javascript劫持技术完全可以实现CSRF worm,百度产品的这两个安全问题为实现Web蠕虫提供了所有的条件,80Sec团队已经编写出一只完整的百度csrf蠕虫,这是一只完全由客户端脚本实现的CSRF蠕虫,这只蠕虫实际上只有一条链接,受害者点击这条链接后,将会自动把这条链接通过短消息功能传给受害者所有的好友,因为百度用户基数很大,所以蠕虫的传播速度将会呈几何级成长,下面对csrf蠕虫部分代码进行分析: