简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
; q: f8 F/ V, Z1 d* m1 t. J% S详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么* p: f; g8 `) e6 E( q' Q
/ }; t4 e9 M0 f( z1 C
( ^, J$ r* `0 Z" ]: O3 Q& E
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
+ t3 }3 Y. O- |而事实上。。。确实就那样成功了* w' |, `* s: N! d' p. X. f- I9 Z3 ?
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>, a2 D6 |( K r1 {0 o1 P8 T9 v: q
, q- ?" O$ R- B# `2 v/ W复制代码
' N) q- B; l$ \- |当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort: V1 K+ z% t' i5 O. f; ] O6 c
! S, G( L$ m0 k# G5 y; f! |复制代码
& r. N" R3 y% I- B# K: [9 h漏洞证明:
! n5 a0 m8 q+ t' j
1 A" C$ Z: R. m. ~9 Y( t9 p7 `' P% z
5 O! a0 ~" |" R$ k6 B0 m( q修复方案:对xlink:href的value进行过滤。( |3 g+ S5 W Z
4 ~) o( y& p1 d1 A0 p$ ]1 p5 a: a5 s来源 mramydnei@乌云
$ z, p2 _7 U4 {4 z- c1 `+ p4 h3 F3 }3 h1 }2 e7 z7 r6 ?
) ]( u, |6 p" q! S: q% A+ M
|