简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码" w# ~/ | R4 j8 x8 ?( O1 @4 x3 A
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
+ o |8 V5 |+ Q) J f7 b
6 {$ ?3 u3 D t1 Q7 T0 @; \3 {) T& S' x
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。- X# a' c) p' w I8 u1 z. B1 E5 }
而事实上。。。确实就那样成功了
+ M+ j) U* Q6 y2 o" G8 ]有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>7 t/ H+ y9 e+ n- t ^
& V! t; g- u9 S2 j' }
复制代码( h" I9 ~; u. O
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort, G B0 w; h5 o& q! k
( X" ~2 x; `7 l, E复制代码# C! |3 |9 i- k8 H+ Q
漏洞证明:
6 a4 l( q: _6 [ B9 W, |) w* l: c' l! h
) i( E! a0 f8 e# v3 M1 r
# d' J1 d. G5 i修复方案:对xlink:href的value进行过滤。; x' _7 g9 `; Q
+ p/ }' \! t: E' }) l- F9 M' [9 B
来源 mramydnei@乌云
6 h: p1 T( |) K: H
- J. `' o- I5 e9 D# n
5 ]5 m' j( _! |; S3 q |