简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码8 u0 g4 g* l. o" @3 a
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么( w4 ~* K8 _* a: Y: v3 O6 M
) h& Y$ Y. n2 p6 i# _( G
0 D7 | M5 G# Z" G可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
5 d `" S1 C' g- S而事实上。。。确实就那样成功了7 G0 D% G4 L/ G# u; u
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
, u( H& ?) F) w4 X* v
& J" f% r4 o8 f, F h8 w* N复制代码
9 N8 p6 }& f; q当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort* f) Q5 |, {2 H Y+ C& X/ w
2 H; q5 ~9 i3 b4 m( t" k0 ~# J复制代码. v+ F& e' s& L9 W
漏洞证明:$ \7 e& w; K# _$ k9 K' I
# y" j! S2 H* s+ n, i t5 G/ s! F6 j0 ?( F! S+ e( _% n0 I
. E. k# l m- o9 n& W1 |修复方案:对xlink:href的value进行过滤。% o* I7 z( M. Y7 ]' Q
" J! S! [" W0 l3 h8 k来源 mramydnei@乌云 + I- f G, M1 h5 c7 r K
' z( ~4 r# R/ I1 |
8 f/ K; B7 ^* P( n* S. l4 s/ T |