简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码& I% z* q+ \" R
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么: t% _0 u6 d0 r/ Q) f3 E
9 a# ^" S- p( V6 Y& t
5 ]$ q# m: Q0 x8 I; ?# J: f可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。5 ?$ H& t: j- C( l6 z2 g/ x6 m
而事实上。。。确实就那样成功了
0 Z1 V) i& y5 l有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
/ ]) w0 n9 _3 K3 P8 A & P" e3 r" M8 d
复制代码
- Z% D/ j$ {1 n当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
( }; Z1 e8 \: q R7 R: a# q 2 H$ h6 p1 u _" }7 d8 P, u/ c6 t
复制代码
; k I2 Y p8 i2 X; u. @漏洞证明:9 ~6 R0 u; Z1 b- J x9 J% a( c
8 Y3 z+ v3 n0 s( o" O# d3 `4 N, T
, Z! d9 }; g2 F" A
3 j- i* d4 X8 c
修复方案:对xlink:href的value进行过滤。6 ?! f! [, }2 ?- {
7 Y6 N3 m3 ^7 P# K& W% _来源 mramydnei@乌云
" @( F1 b4 a& s% \7 @3 n8 K" O7 ^2 L$ o
+ C+ D0 j6 A! [/ V' I' } |