简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
# ~% z1 {/ X% x0 a& f' W详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么- K4 s$ I0 \/ c. l8 z) I
6 Z3 f6 {& D- m5 A" \# I: J9 x, t
5 I* [- m2 f9 p% p# n6 d4 ^可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。. x+ J3 _( h9 b8 C2 t( y
而事实上。。。确实就那样成功了
$ e! t# z! q: l7 e0 ^2 r有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>. I; ^* C S+ v9 u+ b
+ S6 |1 `( {$ U) I/ G" O& ]
复制代码0 p j, y. v/ F& ]) i
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort! T. {9 `# q( I
, u2 p8 a+ o. p3 P7 L复制代码3 |% B+ s1 G# w4 ~
漏洞证明:6 u7 t( }2 Y+ g- Z
4 D( q Z8 D' A: \
7 v0 e1 e% {5 r1 V0 G6 x8 H/ Q7 R6 f; V
修复方案:对xlink:href的value进行过滤。
" m2 c) ?- D% g1 a7 m' X: x5 c/ k6 v0 O8 ~( {) F8 i
来源 mramydnei@乌云 8 |3 V6 u; D P7 ]0 {
+ n6 W, U# _: L8 |
' \; @& L. j5 v1 k F4 G |