漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-017309
漏洞标题:Flash应用安全系列[4]--Flash Player的又一个0day
相关厂商:Adobe
漏洞作者: p.z
提交时间:2013-01-14 18:31
修复时间:2013-02-28 18:33
公开时间:2013-02-28 18:33
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-01-14: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-02-28: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
Flash Player在处理Flash应用与HTML页面进行通信时,未对特殊字符进行过滤,可能导致跨站脚本攻击。
详细说明:
上回我们说flash.external.ExternalInterface.call的漏洞,其本质还是在SWF和HTML通信时对字符处理不当导致的。还记得我们在第一篇中讲得,SWF文件与HTML页面的通信,包括了从SWF到HTML,就是传统意义上的执行JS,还包括从HTML到SWF的通信,这种通信方式就是由函数flash.external.ExternalInterface.addCallback进行的。addCallback函数可以将ActionScript方法注册为可从容器(这里是HTML)调用。成功调用addCallBack()后,容器中的JS可以调用在Flash Player中注册的函数。
那么在从HTML到SWF的通信时,究竟又发生了什么呢。我们简单地建立了一个addCallBack.swf文件,其中代码为:
addCallBack.as
addcallback.html
开启IE开发者工具进行调试。
这里有两个变量,fname是在swf中定义好了的,一般不会再改变,因此我们无法控制,addcallback是html页面里id="addcallback"的值,这个是可控的,如果我们顺着上文的思路,对addcallback处尝试进行注入,会怎么样呢。
我们先尝试"符号。
addcallback.html
在IE中,js调试结果
"没有任何过滤就被注入了。我们闭合函数,弄成一个PoC,并添加一个带有id的HTML Tag,避免出错。
addcallback.html
漏洞证明:
在线PoC: http://swfpoc.appspot.com/poc/addcallback.html
该漏洞仅对IE有效,具体的应用场景可以参照这篇: WooYun: [腾讯实例教程] 那些年我们一起学XSS - 21. 存储型XSS进阶 [猜测规则,利用Flash addCallback构造XSS]
修复方案:
反正你们不修复
版权声明:转载请注明来源 p.z@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝