简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
Y% |; v) j3 c5 ?5 E详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么, N) E4 K7 V2 W
5 W u- u; k! l# R6 S* `
9 V k b8 v% d* |: I. P可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
# D2 ?5 }" Z, `. j) x而事实上。。。确实就那样成功了
3 I% Q8 V3 C: i9 k* ]& I有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
1 t H7 e2 n+ S. b. e9 G
- X+ @ t* y7 ^$ a复制代码
2 [$ g" s! h4 u5 T, e( ]当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
$ {$ ?. ~: v/ P2 W5 m & X: b `. @! `. K8 z
复制代码
% \; f9 d6 q# A5 o% g) z% V& o漏洞证明:' W) q$ U8 l) b8 _9 W( Q6 L, |5 I
( V, @- |( s9 Z) N
: G: U# y- M* a. O$ c9 a1 c
9 Q+ e5 Q: p/ i5 E
修复方案:对xlink:href的value进行过滤。- W2 i( ]- N5 [' s# B
5 w7 G N) q T+ f" W& r I
来源 mramydnei@乌云 + F/ K& ^! T3 M) U! I
7 o0 }1 K3 T4 g2 w2 L2 s$ K5 i
6 C; R+ r+ j8 X! z: s8 g |