简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
C V1 K& `2 W5 `7 H8 j' K. ^详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么6 z2 l7 U! I8 R7 f5 U
# N( k0 N; _5 I. a6 M4 J3 }( F
' d5 R. u# K6 O( U. e( @
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
% T" Q+ z+ O) Z; g& V而事实上。。。确实就那样成功了
: O% v* [5 O' e* R9 \) D& T有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>. e5 X% p5 f6 M' y
# Y( A5 L# {- J/ b, r) N复制代码
$ q" e/ G6 p( c: u当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort! l6 S& |' Q3 [/ J" k0 i
0 P& e8 l! y. ?' k4 T复制代码
: i: |, a, a% n8 N漏洞证明:
% S6 N+ S& z% v" M. {6 W9 ~# `9 `- g& Q9 M% K9 e& O
' v6 C) G* C% Z% s: P$ {# _2 v! p
* L; d" Y3 A+ p" I3 D+ D2 g' H修复方案:对xlink:href的value进行过滤。+ Z+ ^, S5 C( v# |/ R. o
4 a/ R' e, x7 M0 l
来源 mramydnei@乌云
) y/ _% C4 n! y& _8 x7 X+ F1 T* z% q, `# t, |! A; k) e* G
# i' }' g& w/ o
|