利用Flash参数注入的新型攻击技术
2008-12-18 13:41:10 来源:WEB开发网核心提示: 图6用于创建Flash对象的JavaScript代码正常使用这个网页的时候,上述的JavaScript代码会生成以下HTML页面: 图7由JavaScript代码生成的HTML在这种情况下,利用Flash参数注入的新型攻击技术(5),该HTML页面的开发人员将页面的URL传递给了全局参数
图6 用于创建Flash对象的JavaScript代码
正常使用这个网页的时候,上述的JavaScript代码会生成以下HTML页面:
图7 由JavaScript代码生成的HTML
在这种情况下,该HTML页面的开发人员将页面的URL传递给了全局参数“location”中的Flash文件了。开发人员意识到Web 应用程序的安全问题后,使用了“encodeURI”函数来避免诸如基于DOM的跨站点脚本攻击之类的攻击。
尽管开发人员非常谨慎,但是攻击者仍然能够诱骗毫无戒心的受害者单击如下所示的链接:
http://URL/index.htm#&globalVar=e-v-i-l
单击以上链接后,将导致如下所示的HTML页面:
图8 攻击引起的HTML
这时候,有两个变量传送给了该Flash文件。第一个变量是“location”,其值为“http://URL/index/htm#”;第二个变量是“globalVar”,其值为“e-v-i-l”。这意味着,攻击者可以控制嵌入原始HTML页面内部的Flash文件的所有全局Flash变量。
事实上,利用“?”代替“#”的话也行,它也会导致同样的攻击。然而,使用井号(#)的优点在于其后的数据不会发送给服务器,从而致使受攻击的站点上的IDS或者IPS觉察不到攻击的发生。
更多精彩
赞助商链接