简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
4 E9 n5 h. [4 n1 _7 E! X9 q8 N; f详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么% ^' J; y- @6 S2 T& l) H8 K& d
$ G6 u1 ^( g6 n1 l0 }! Y
& y2 T9 a5 i1 g8 p8 f5 X/ x可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。- _; D( {, ^6 {7 n# d
而事实上。。。确实就那样成功了1 Y# p4 O& v6 l" _8 ~ f% _& K
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
V1 i- L/ H$ {
9 x, e! D; }& E复制代码
6 ]! U" L2 X: u) M. [. H* s$ t当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort6 ]2 s, l5 H6 v: e) {
* I) ?" j% o3 Q4 A1 L
复制代码- \& R0 U7 @" ~% _
漏洞证明:
2 t' o* d) e( |
6 n9 F. [: K: C) { D* b5 ]# Y* h
8 d$ [3 a5 a. C! {: z: ~* I. ]( c8 X2 b- r% a
修复方案:对xlink:href的value进行过滤。2 }/ j( J6 e7 f" I# i5 f
, A' X! p7 j' c/ L
来源 mramydnei@乌云
9 C: e+ U/ S/ p# P7 m/ |; Y8 X
" n+ `( f6 G# R; r# a# P
- W; ?. d) s" [7 e: w |