简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码' c+ o3 x- o6 {* }- E) a
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么; e8 ~8 p+ Q, V! Y0 |& F
" v( N f" n% v' W6 \. |4 d
$ b4 A+ ]* j4 s! X
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。0 l( R G+ D1 f
而事实上。。。确实就那样成功了6 Q* i7 U& k8 A. e
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
( W: V: L9 B! f. @& O( G; ]+ N
" o( d" i& B g8 m+ I4 D& m复制代码2 d. n9 `# K/ \' ^
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
6 }5 Y- ?$ F; K. j7 @/ `
$ M, y/ D9 M) d1 _5 j# H$ i' r, D复制代码" v$ O F4 W% z# O) d2 T/ g
漏洞证明:& X3 o' Z6 a6 x8 d
+ _! r* _4 A3 |* V$ w1 e$ @; |, F/ U6 d. i( j6 ^- ~1 S$ c
- h* u/ ] h0 V( ?. V! u% q修复方案:对xlink:href的value进行过滤。4 Q1 {' H) H$ g- H
; z2 v, j8 Q- \+ F) v7 `来源 mramydnei@乌云
& v: V9 U+ d5 G8 @0 [7 z1 a7 N
- r% r' W' g8 L3 R8 s8 \# W; `
% H' t, x4 \% s9 o" K8 _ |