简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
4 G0 I: j. z, ?详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
8 E) H$ ~9 f1 G8 b& ^4 `
$ `7 ]/ ~0 {5 o; {) F- F, K0 U
9 q/ @ n: u& q. B可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
" u9 M6 g z1 o" o4 w) b而事实上。。。确实就那样成功了
# ]! j' n& t" P( K h( ] W, p有效的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 _8 m6 W0 y4 ]2 i( {% B9 Y- \
5 [ V+ N9 M+ F/ \复制代码
6 G% C3 u/ J+ s& M; k当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort) d' u" }# |6 o8 |3 N( e0 I
; W: T( y! E3 t' E/ e1 c5 w复制代码+ Q& ]# R# ~) r
漏洞证明:; [# l [4 f9 D! q( f" N
7 S) m. H; J* f% x7 k
5 M2 i& ~* b: k! \3 w( O! p
- @* t; ]2 k/ ?6 p
修复方案:对xlink:href的value进行过滤。* E( y5 V* L3 y) n9 l7 d
! d, c) V, O$ k& X9 X1 e
来源 mramydnei@乌云
* b* }. w& Q1 ~# C k( m" v }+ t) ?) o- u
9 ~3 W% m: u& s$ a |