漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0128752
漏洞标题:利用QQ空间存储型XSS漏洞配合CSRF漏洞劫持用户其他网站帐号(敏感标签403拦截可绕过\403 bypass)
相关厂商:腾讯
漏洞作者: q601333824
提交时间:2015-07-24 10:09
修复时间:2015-10-22 15:52
公开时间:2015-10-22 15:52
漏洞类型:xss跨站脚本攻击
危害等级:中
自评Rank:8
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-07-24: 细节已通知厂商并且等待厂商处理中
2015-07-24: 厂商已经确认,细节仅向厂商公开
2015-07-27: 细节向第三方安全合作伙伴开放
2015-09-17: 细节向核心白帽子及相关领域专家公开
2015-09-27: 细节向普通白帽子公开
2015-10-07: 细节向实习白帽子公开
2015-10-22: 细节向公众公开
简要描述:
1.本测试全部来自fuzz测试(全部根据返回内容判断,如有判断错误,见谅)
2.XSS输出点没有进行过滤,但是如果输入敏感的标签关键字,服务器会返回403错误.但是实际上并不严格
3.别人说标题长big也大一点
(已经补充利用方式)
详细说明:
1.QQ空间分享网页的时候,其中?url这个参数没有对双引号进行过滤,如图
①.
②.
2.这个参数虽然没有进行过滤,但是只要输入一些触发事件的标签,就会提示403,然后页面一片空白,比如我输入,然后会变成这样无法访问,如图
3.如果输入一些正常标签,没有触发JS脚本的话.就不会拦截,测试的代码有
<img/src="1"/onerror="alert(/111/)">------------→拦截
<img/src="1">------------→没有拦截
<script/src="//11">------------→拦截
<scr/src="//11">------------→不拦截
<iframe/src="//11">------------→拦截
<if/src="//11">------------→不拦截
<a/href="javascript:alert(/1/)">----拦截
4.下面测试了很多,就列出来这些,从这些上面,可以看出来,是根据关键字进行拦截
5.但是测试到 <a/href="data:text/html;base64,XXXXXX">的时候,会分成两种情况
①.第一种情况,这个编码输出的<br>:
<a/href="data:text/html;base64,data:text/html;base64,PGJyPg==">aaa</a> --------------→ 不拦截
② 第二种情况,这个编码输出的<img/src="1"/onerror="alert(/1/)">:
<a href="data:text/html;base64,PGltZy9zcmM9IjEiL29uZXJyb3I9ImFsZXJ0KC8xLykiPg==">aaa</a> -------------→拦截
6.这个时候脑洞开一下,如果把第一种情况,和第二种情况结合一下,<br>可以通过,如果<br>的编码,带着<img/src="1"/onerror="alert(/1/)">的编码,是不是可以也能通过403???于是下面测试了一下
↓(编码)
↓(把最后的等于号编码了,因为url那里不能存在等于号)
7.然而并没有拦截
8.提交一下试试,查看空间代码
9.然后点击之后,弹一下窗口试一下
10.查看来源,证明是从QQ空间弹出来
-----------------------------------------------------------------------------------
11.但是这个太小了,一般很难让人点到,可以加一个CSS样式,把XSS点,放大,如图,已经通过CSS样式,把XSS点放大,鼠标随便移到哪里都能看见连接,红字标记
---------------------------------------------------------------------------------------
12.然后审核的人说,需要利用方式,于是我一直在想,想到了昨天提交的漏洞,还没有修复
WooYun: 利用QQ的一处小小的设计缺陷劫持其它网站用户帐号(已经录制视频证明不是IP问题)
13.这个漏洞我提交的时候说过,那个登录连接从别的网站,点击跳转会提示403,但是从QQ聊天窗口和QQ空间,本地跳转不会拦截,然后看这张图
14.虽然这个XSS不在qq.com域内,但是你看,referer是qq空间的,说明可以打开登录连接,也就是说,上个漏洞在这次的漏洞可以进行利用了
-------------------------------------------------------------------------------------------------
15.以下测试的利用图
1.先构造代码
↓(Base64编码+url编码)
2.
↓
3.得到了分享网页的连接,然后发表到空间,直接嵌入到空间个人中心状态了
4.其中http://guanggao456.sinaapp.com/1.js里面的代码是
5.上面的代码合起来利用方式就是,把XSS点在空间个人状态放大,铺满整个屏幕,然后当用户进他自己个人中心看状态的时候肯定会点鼠标,然后XSS执行了,先window.open,打开实现设置好的我的登录连接,再延迟两秒,创建iframe,打开Discuz社区绑定的QQ帐号的连接,然后就没然后...........................
--------------------------------------------------------------------------------------------
6.测试图片
1.可以看见CSS把XSS点放大到全屏,随便点都能中
2.当用户在空间一通瞎点的时候,XSS触发了,先打开我的登录连接,然后开始倒计时绑定帐号了,噢噢噢噢噢噢噢.666666
漏洞证明:
1.漏洞证明看上面
2.先访问这个连接,分享一个网页
3.其中http://guanggao456.sinaapp.com/1.js加载的内容是
<code
修复方案:
1.过滤
2.403拦截恶意代码并不是那么严谨啊
3.上次的漏洞还存在被利用的风险
4,如果知道对方经常看哪个网站,那个网站又没有绑定连接的验证,我就可以实现设置好连接,他进自己个人中心的时候我就在那等着了.......
版权声明:转载请注明来源 q601333824@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2015-07-24 15:51
厂商回复:
非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。
最新状态:
暂无