简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
. T# a% e% S% y4 u% s5 \详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么8 ^& d# A$ f! f. i5 u2 `' _5 S
$ E8 @1 m* `7 A" D9 l
8 P; [- M2 m' r% \. i: B
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。 ~+ k/ F1 H/ A' D
而事实上。。。确实就那样成功了3 d. |$ p9 s) e) z4 [
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
9 b5 i; s, y3 ?! H. P/ R u
2 R: h! m3 N; c: Y& H0 R复制代码
4 r$ M* E7 W4 M; N; m当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
6 \4 w2 J) Y6 }8 F* Y | * R: y+ p6 J& k" ]# }# {" u+ q# a0 _5 ~
复制代码
/ a/ z+ G1 E1 W W& I) p- a漏洞证明:' Z. Q) J7 q+ ^. \3 m- W
c3 ~- d* h4 q: x
( k" ?# o" `4 X4 q
6 I1 ]1 D) r5 I6 s4 s修复方案:对xlink:href的value进行过滤。; M4 T% ?, R9 m; J" q+ S
" o. S0 O- c+ R% t" C来源 mramydnei@乌云
+ N. M7 i9 v1 M) r$ W/ u: }, w* F+ v" g: W8 u( S. @- P$ J
& h7 O* W2 }8 T O4 G' _ |