[Flash!attack简介] 本文我们将描述一个安全漏洞,这个漏洞存在于很多嵌有Flash,或者是上传有Flash的网站中.本文是建立在一个事实之上的,那就是大量的web浏览器都安装了Macromedia Flash plugin/ActiveX control.这可能使攻击者发动跨站脚本攻击.我们将不讨论跨站脚本攻击的细节,而是解释Flash是如何被用于注射javascript脚本到一个充分过滤了的web程序中去的.
[现有的web程序和跨站脚本] web程序构成了动态站点,允许用户和站点本身交互,这种站点包括Hotmail,Yahoo,MSN和其他许许多多站点,为了支持多用户登陆,通常都需要验证用户的身份. 在线交流站点,如deviantART,每个用户都有自己的页面和web空间,他们可以上传一些艺术作品如诗,画,照片,当然还有Flash动画.登陆后的用户(当然也包括匿名用户)可以看到别人上传的东西,这表示文件和目录在不同的用户之间共享.从安全角度来看,被浏览的文件受到文件的拥有者和浏览它的人的信任.
跨站脚本攻击,就是现在常说的XSS,是一种标准的,利用文件所有者和浏览者的的信任来进行攻击的方式.当一个前来浏览文件的用户,浏览一个恶意页面(另外一个不怀好意的用户构造的)时,这个含有代码(如javascript)的页面就会盗取密码,或者用户的隐私.
[防止跨站脚本攻击]---目前的办法 大多数的有安全意识的web程序通常采用如下3种手段来防止XSS攻击 1.在用户输入的字符中禁止html语句 2.只允许特殊的标记,用这种标记来代替html标签产生的效果 3.从html代码中过滤掉动态脚本 这些办法通常被确信能够防止恶意用户注入自定义的html或者动态脚本.web站点,如Hptmail,yahoo Mail 尝试利用文件过滤来根除所有注射javacsript的可能性.一些权威, 如CERT和Microsoft已经详细描述了过滤的方法,以及XSS带来的危害.
一些网站允许Flash文件被上传并显示,别的仅仅允许上传flash文件以便下载,就像ftp站点一样.
由于网站设计时的不足,加上没有把Flash看作一种动态的脚本,网站的过滤可以被轻易地绕过.下面我们就将描述如何做到这点.
[Flash! attack] Macromedia Flash有它自己内置的脚本语言---ActionScript;ActionScript在熟练的javascript编程者看来是非常简单的,因为它有着和javascript,c,perl相近的语法.但是这个简单的语言可以被用于复杂的动画,模拟,游戏的创建....我歉行巳氖撬膅etURL()函数.这个函数允许我们把用户重定向到另一个页面上去.这个函数的参数通常就是一个URL,例如"_blank>http://www.itaq.org",所以这个脚本看上去就是这样: getURL("_blank>http://www,itaq.org") 假设我们用一个javascript语句代替URL: getURL("javascript :alert(document.cookie)") 上面这个例子弹出一个javascript警告筐,里面包含有用户的cookie信息.这表明我们成功利用了Internet Explorer 和 Flash的特性,向网页上注入了javascript脚本.示例Flash文件类似于截图所示
(图1)
[脆弱的展点和软件例子] Ezboard(_blank>http://www.ezboard.com/)可能是最著名的免费在线电子公告系统之一,这个BBS是基于HTTP的,允许用户用Flash作为签名,通过使用EMBED标签.因此在我们的测试中,我们按照如下所示构造我们的签名: <embed src="_blank>http://eyeonsecurity.net/download/example.swf" pluginspage”_Prod_Version" target=_blank>http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version ShockwaveFlash” type="application/x-shockwave-flash" width="0" height="0" > </embed>
看图可能会更清楚些:
(图2)
这段代码将被添加在攻击者提交的任何文章后面,使之能够盗取用户的cookie.
DeviantART是一个非常流行的站点,它鼓励用户提交flash动画,并且允许别人浏览.当然一个恶意的用户也可能提交一个恶意的flash去透取其他用户的密码(包括管理员的),他会创建一个新的帐号然后上传一个特殊的flash,之后就只需要等待别人浏览就行了.
MSN Communities----这个站点允许用户上传他们自己的文件.....我们上传的是SWF文件,它可以执行一段javascript代码.这明显是一个网站的安全漏洞.在EyeonSecurity的一份名为“Microsoft Passport Account Hijack Attack”的文章中,还概括了了一个MSN创建证书的安全漏洞
匿名服务站点如Anonymizer 和 The-Cloak,也容易受到这种攻击,它们尝试从html中过滤出javascript脚本,但是对此种攻击毫无办法,试着想想一下,访问一个特殊的flash便可使所有的过滤都不起作用
上一篇:用SERV_U建立文件备份系统
下一篇:Linux操作系统12则经典应用技巧
|