Adobe Flex开发包index.template.html页面跨站脚本漏洞
来源:岁月联盟
时间:2009-09-14
Adobe Flex <= 3.3 SDK漏洞描述:
CVE(CAN) ID: CVE-2009-1879
Adobe Flex是用于构建和维护Web应用程序的高效开放源码框架。
Flex没有正确地过滤用户提交给index.template.html页面的请求参数,通过window.location javascript对象所传送的URL参数之后被存储在了MMredirectURL变量中,并传送给了AC_FL_RunContent()函数。
59行:
.snip..
var MMredirectURL = window.location;
.snip..
63行:
AC_FL_RunContent(
..snip..
"FlashVars", "MMredirectURL=" MMredirectURL ’&MMplayerType=’ MMPlayerType /
’&MMdoctitle=’ MMdoctitle "",
..snip..
带有用户可控输入的MMredirectURL变量传送给了AC_GetArgs,最终到达AC_Generateobj执行document.write。向HTML写入未经验证数据会导致跨站脚本安全。
AC_OETags.js文件
200行:
function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
178行:
function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = ’’;
if (isIE && isWin && !isOpera)
{
str = ’<object ’;
for (var i in objAttrs)
str = i ’="’ objAttrs[i] ’" ’;
str = ’>’;
for (var i in params)
str = ’<param name="’ i ’" value="’ params[i] ’" /> ’;
str = ’</object>’;
} else {
str = ’<embed ’;
for (var i in embedAttrs)
str = i ’="’ embedAttrs[i] ’" ’;
str = ’> </embed>’;
}
document.write(str);
}
<*参考
http://marc.info/?l=bugtraq&m=125071471609263&w=2
http://www.adobe.com/support/security/bulletins/apsb09-13.html
*>
测试方法:
[www.sebug.net]
本站提供程序(方法)可能带有安全性,仅供安全研究与教学之用,风险自负!http://FlexApp/Flex/index.template.html?"/></object><script>alert(’XSS’)</script>SEBUG安全建议:
厂商补丁:
Adobe
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://kb2.adobe.com/cps/495/cpsid_49530.html