简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
1 f4 e6 M, ]4 u1 K0 G详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么* W( U/ G# H4 N
& ^* r3 A! w6 s5 O& m3 k+ E$ K5 [) c6 V
+ _, Y1 @. P0 f9 d可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。$ T4 O0 x: p7 J( B3 T
而事实上。。。确实就那样成功了
- I% F, I9 @8 q, i0 d7 e5 M/ `; _有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>. m* L$ b$ g1 F
3 z. h0 N) _ m% ?0 ?/ ~$ F
复制代码' i6 V; m9 Y! i" _5 C9 K) ?) E G
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
. T5 M7 U4 M) @2 V- T% U- I& q 9 P; {/ z7 x2 a( b) S+ _; I
复制代码! G; k1 D7 ~( c; o/ q1 ]
漏洞证明:
7 B5 V+ m$ d8 ~/ e1 X5 {, d
% Y Z, p1 L# t- \+ l- B
u8 _( G! x5 {# w: C. }, r: `4 h
& m8 L- V+ d' e: ~修复方案:对xlink:href的value进行过滤。
( E4 n3 C4 n6 r+ u: v
3 a( p. [1 _/ n' Q) C" q6 o来源 mramydnei@乌云 $ Q6 q6 w9 E2 T8 E: L0 P4 R
* ]/ a( m) z7 j4 A5 A+ k
. F4 M8 b$ Y- b |