简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
3 Q8 e: R" y0 ^8 Z0 v" S I详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
$ ?) J+ g( I M' T6 y9 @) i
3 y# V5 ~ n" t; {" _" N! Z) @+ L/ R1 g3 ~8 ~* G! O
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。5 S! L' f+ `8 r& `% _. [/ d2 C# V
而事实上。。。确实就那样成功了
. M/ `2 o; N( z2 f0 U; _有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
0 }2 n5 o* R- N0 {; J! m' `
; v- z G1 ^0 G Y9 t, `) P3 k复制代码
; }+ ]; t7 c5 t ~: k) P3 B' }当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort1 S: U3 W5 w0 `3 G: {) s5 e* ~
1 B6 }7 o( v# @8 E. }
复制代码
: ?2 u4 H( D2 i6 g漏洞证明:
" \/ J3 `/ o8 h
+ U. u6 p# U: I( y5 ~, a
, P9 N; Q2 A9 ]' @' Y5 D }$ _7 \5 Q# [3 x
修复方案:对xlink:href的value进行过滤。/ [: u+ o. ~0 h; i' p
/ i3 ~" B, E1 X0 O. z) x& N
来源 mramydnei@乌云 0 y# T4 d$ m! _5 Y
$ X) V Y0 k' Z- M0 h! }" N6 E# n' R) O# N
|