简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
2 F! n3 _+ `6 V+ F详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么1 J& F# a, B0 g! X& ]6 c; `
5 Y* Q, \% A) u( C& F2 ?: p' |, |0 j+ }4 P6 `
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
/ s) A% W& _0 ?: u而事实上。。。确实就那样成功了
/ {9 K" R: x" f有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>5 ~9 F% L7 V: B4 D' U/ Z+ b+ b
% g4 l6 c* M) q9 w+ B9 o复制代码
" B1 s6 L- T2 w! y8 c当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
7 X# B+ j+ ^9 Z( L' e# [9 e + z" D/ |7 }: v4 q
复制代码/ x, }% I9 Y6 D2 g+ R& p
漏洞证明:' |. Q) t7 F0 V1 `8 w/ C
7 ~% y2 t; \8 r
) ]) h- P1 o) r. V9 `# c+ k: b( D
) j9 r5 ~4 m& w; ~9 c修复方案:对xlink:href的value进行过滤。
, [- V( L6 x7 G; a
0 S' ?+ ^5 Y5 h" B. \来源 mramydnei@乌云
* o( @& _4 g( h) w; G& E* J# ]' O. o
+ E m6 D8 z7 _$ ` |