简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码0 w& @+ Q* h3 d+ c; ^
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
/ w w$ z& h4 n. N' J
. V0 O9 o& ?, L4 w5 E8 \
# n$ {" |+ O2 d+ z6 w' @可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。+ J0 C2 U# M4 e3 W0 G. D7 m8 ~
而事实上。。。确实就那样成功了
6 `( @+ }5 x$ C A有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>, {$ g+ v d( P1 v ?2 M
- X8 U4 [4 C1 R# k
复制代码/ |9 h# N% \) t" b& U
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
y' y: h: g' ^ 7 P2 Y. y* p- ?, V+ ]
复制代码
% ?7 P6 D; u7 _8 ?+ l漏洞证明: x: P7 ~ D) @' f1 P
* a" y; o- h0 q! P' M& ^ o' i$ {4 T
, m7 I- K3 q1 P) h; I F
/ u& } K! b H( A1 X5 Q5 o5 e修复方案:对xlink:href的value进行过滤。* v, }8 \$ x7 S0 \5 d( o8 u
% m) L0 z7 P5 s# I' U; S; m* L来源 mramydnei@乌云 - C! [. T0 f% r) E& ] A6 G# `3 l
! h( w+ P% }( E: v' F( X3 U, F$ V$ i+ V1 a y
|