简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码2 W8 @' {7 D _* W: K( ~
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么( t |7 \0 f& a# f, V1 P* ?9 E
3 P7 [& i: M7 l$ |) p/ N Z8 P/ K3 f
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。0 [6 ~) T" m" D1 b- w& t
而事实上。。。确实就那样成功了
3 H# m3 v8 _2 G1 g有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
, r$ L4 H) t1 j
: \0 m' v+ v" |% O0 F3 l: }& M复制代码& K F5 V; ?! e1 @6 D* t. G: w! o
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
/ o9 S& O% u' k \" w4 w " r! y% j% S# i
复制代码9 v( l! o1 B, Z1 ]& b1 i
漏洞证明:# |9 p: ?7 O6 E' M5 V) I: N
5 S0 e* s7 q6 s& P+ l7 ~
. \! J4 ~" k0 t, N) U l2 y. P: z$ ?8 _1 k% I+ h b
修复方案:对xlink:href的value进行过滤。& ~% V: B; B5 J/ c0 ]. ?( C
+ n7 o6 J6 Q! b/ S
来源 mramydnei@乌云
$ f* j+ E( J! _
6 z4 x8 I& _2 f l9 A3 O
& H' ? m; r5 `% \5 W- g, ? |