简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码8 j- v% L5 ~' G; R1 m, O
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
" T! V4 ^( o; j0 N9 i- o! T$ R% b9 ]
& @6 U$ g" d# s4 n4 ?- n' |7 }3 w, h
% d- y2 ?/ V+ d- o可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。7 i% d$ u" v1 W1 S: G
而事实上。。。确实就那样成功了9 F: d& K- d9 T( r% y
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math> B* `3 a0 H e. _1 c, J, J
3 P2 e9 t& g1 o0 `6 E2 t$ A" A复制代码* Y3 j0 h+ r8 S& U( H% S
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
7 ~: ?( w- I# p3 U( s 7 N3 F; Q6 G$ c2 |' u W2 [& }
复制代码
; U# \8 `$ C7 P# J& i2 R/ G, i' G, n漏洞证明:: h8 Y; C/ A" p8 [" n# V8 H# K
/ M9 J4 J' V# {* k8 j
) G! u( O2 X" [% }& \
- u' ?: o1 p) X3 E1 v) n" L修复方案:对xlink:href的value进行过滤。7 ^1 b1 }. U K6 ~( l( G3 j
, Y5 j% s! S9 V* ^) p7 y9 g来源 mramydnei@乌云
/ N3 N$ C( P4 k+ U; S1 S9 @
5 y8 G' J1 v/ C; y( Z; U; l, d
$ x0 X8 L# G" [7 ~ |