简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
& G1 z( M. x/ n ?详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么9 ?0 ]! L8 O$ |4 W' I
! T2 M$ J/ j; K1 @4 x7 \. V
3 ?$ z: L4 H+ P* }可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。+ a0 n/ R* R8 \- ]6 n: s
而事实上。。。确实就那样成功了9 e- j4 I2 W! [) Y" @9 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>
% k! Z3 w- L5 T4 g! ?( Z 8 Z/ f I9 t* I5 N; z( k/ `
复制代码
6 y4 s8 g' b5 x% _+ i当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
8 w' g' [! w0 T6 t4 g" a8 z7 |
% A4 L* g8 C" b复制代码" e H9 N9 ~+ B
漏洞证明:
4 l2 }: F5 x+ y2 D! }
' Z. L, j& \" ^' U, _ y* p
2 s0 }. I( m. f/ Y2 t t
" O- P$ p% U/ ?+ {) p* M修复方案:对xlink:href的value进行过滤。6 `/ J2 W+ M% X( b& _
' g( i9 r( M4 E+ c来源 mramydnei@乌云
( P, X% d, ^; o }/ P) L( s) k' R
- E7 ]9 j' N4 l
|