简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
# q& H( {2 S$ f! J详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么; ^( K9 A4 B3 U% E
& v6 p, Z' u2 O! {, c+ C ?' [$ ?. o O8 u% F
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。* p& S% ?$ A7 i* @
而事实上。。。确实就那样成功了, A: a( F( a3 x
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>; b( u. ~; T# X+ v$ F
5 o0 {3 W* i0 @. D7 L7 |4 A2 G
复制代码
+ x! d O/ T% I$ ^2 q当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort5 z- g+ T- U( X( K# ~
1 A1 m4 ?, w1 e复制代码
8 w. t& P9 N* p* }0 \漏洞证明:
% D: u2 U2 u- P f% E5 h% l: c1 h( L0 M
6 i) z+ H" U' G2 X: `
( r/ h! [* z1 A( q& A' ~
修复方案:对xlink:href的value进行过滤。" g8 u. r* ?4 D3 a, h7 o: c
4 Y* d$ k" N: H: r$ h; N
来源 mramydnei@乌云 ) X: E; S: }% P7 D. K1 j K
1 W* t# f9 T4 {
- }& z5 B. z$ Z8 s |