简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码# O v( C7 t. V E. d
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么3 [ n9 R8 x+ `9 ?7 U
2 y% F0 W Y8 s) P& Z* W
7 i% {8 z/ p4 ?$ d2 Z: g X* ?
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。6 X9 U% x o; ]! H ~
而事实上。。。确实就那样成功了- w& g R, X6 j/ X- K, y, s
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math> k5 O0 L- W2 H$ z- M {5 P) K1 ]* Z4 {
+ s* i4 P6 o0 I6 o
复制代码$ p/ g1 a# U8 C: h
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
. J0 } h3 [, E 1 K- B: t1 q! X
复制代码! T4 l M- P* x8 r1 b. C
漏洞证明:
B; Q2 P$ ]# `5 L5 z2 s0 L' s5 k5 Q2 U8 ]* J; T) Q
, g. K) G6 Z3 a, ^9 Q' X I& Y4 ]! Z! p' E; }
修复方案:对xlink:href的value进行过滤。
; U5 ^3 ?" l* A+ H) E: ]: B8 Q
" A9 n; I+ R2 i$ v+ `9 R来源 mramydnei@乌云 ' W; Y4 E/ O: n) \; ? M$ I
; i' `- h y9 P0 O" m- t, u5 m- i: V# U( p C& c
|