简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码# z5 d4 l# O5 i
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么( q4 G9 V+ u3 y3 j$ s
5 [( G9 h9 p/ e0 _8 A
/ H4 V7 Z4 }" u# P+ E可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。) Q. U5 Y; d4 ]# T5 G* b# [& D( Z
而事实上。。。确实就那样成功了
8 x% N3 L( U! |: B6 b$ J有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>7 c, u! i& \# x; h5 H
5 Q7 j. c4 F$ D% n8 z$ K* X
复制代码
E* K# s4 A1 A当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
1 ]4 E) [7 b6 c ) S+ h' v+ H" Z' C7 O# t
复制代码
/ ^* w L. L' x7 O( Y; S漏洞证明:
! ^5 T3 J/ J3 K/ w' e. i4 c. |# K4 Y5 K* `5 [
5 a, P S& f6 U2 z* H' y, K0 }; u# g9 q
修复方案:对xlink:href的value进行过滤。
, M6 p* r& C2 a; F3 u" M
, c0 f3 N" h( z. x6 c$ a, o来源 mramydnei@乌云
# z/ Z5 q6 |! }) I# ]4 Z; a
- P9 d9 r6 Q6 q2 j; i% t* d0 p: A1 X$ A2 N# v, u7 ~" d; D
|