简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码$ z1 j. p$ c) B5 h* m
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么2 A$ p% w( q7 O
8 P( n5 W# o0 ?8 j, ]
& Z% s1 O! ?! g, r9 [9 F可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。4 Y& ~) W' \' g, M& G
而事实上。。。确实就那样成功了/ q0 G% N7 H5 b$ u- ^0 x6 h
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>2 W. K3 g" f+ G! i* D
( a8 n, i# k: o: l3 c5 u/ E) w复制代码4 U( c$ g$ {/ z; b; p" S$ j
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
/ K/ {9 I' K& j
' s; m0 G: H, } K G, a$ r复制代码: t, K: x2 X0 |1 B: S% w, {( G- y
漏洞证明:
! Y/ t* X+ @- L# M! M5 e& ? Z U2 M) |
1 Q4 E: R* f/ f+ A' N
7 C' j/ F" `4 E6 S修复方案:对xlink:href的value进行过滤。. o4 d3 x* z4 P, J9 X) }) w
; M8 o, X# u8 k. J1 R
来源 mramydnei@乌云 3 F) n' k& C" }( h* w
, A) n9 e' g( a2 i V" L
; h. b+ ^) b7 n- x$ E2 e
|