简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
( l* C; V3 m. t, o' T详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
g. w, b- z2 A7 t% D
) Y" P1 M0 P8 U9 a+ I" v' j! _# i, ?. k8 x! r( L. r
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。/ X, {+ W) A; Q
而事实上。。。确实就那样成功了! Y/ Q3 |4 S5 Y" @- x
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>9 x9 V! k: e* C8 W% }2 p( p
+ ~% O' W$ ~7 g* L) D
复制代码( b" f* P A' v0 I- q, b4 j
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort" `* S0 M5 g' U% Z/ u9 s( C
" w& e$ v ?( @4 L, J z
复制代码9 V7 O' N2 t. G
漏洞证明:
' h: K0 U; y* f4 f0 b4 n' Z- _/ i, E9 F* V& r" Q# D- i
4 V8 L n6 Y6 d6 L$ e
4 m; f* z) `/ u8 q4 `修复方案:对xlink:href的value进行过滤。
8 e8 |5 z! i0 |! u; T+ ~ a1 h* _
6 K2 T4 z, r- q1 d5 v8 @来源 mramydnei@乌云
! I7 b/ O" ?# u4 w4 N, s5 n5 B
) _; z, h, [; M3 ~* u. ]$ A: S' `* R9 ~( h9 g9 \
|