简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
z: J8 Z# P! O; V6 \7 Y) c) ?详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么* v4 }( G0 g" S: A6 f% c
( @# |+ A/ ]/ j, w8 [8 {+ y& }- O% G, M& ~
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。7 B2 `) _/ ^& n& W3 O* E
而事实上。。。确实就那样成功了
: j& `& V/ j9 _# T1 v5 q5 v8 s/ l8 ?有效的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 x B( w+ R/ m
G, [3 b4 V6 V* t8 c, f4 }
复制代码+ F9 S5 f3 U+ D. A5 ~
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort4 o- D' \) H6 a( c7 J; M* ~
, J" Y; {) y* V# j# b* t复制代码5 f4 Q( X, r# H- `: B& ]" t6 v
漏洞证明:! j8 [( B9 V. x/ k, ?4 u( c4 S
1 Z0 j: S R: K& ], C3 |+ [
0 ^4 E+ j( p$ z$ w; ?8 @4 n2 B9 H5 B+ a; k% J
修复方案:对xlink:href的value进行过滤。
5 V% \, C5 o1 E
: A$ D+ B9 g; ~4 y来源 mramydnei@乌云
+ {& F" n' K% i; W4 z2 t
1 p6 n, \4 a8 p. D% t1 [4 m1 ~4 ~: |- Z( q4 g, a' ^
|