简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码% A+ |; s. c# a3 I! W( X
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
& a( [ y7 M: v: v+ Q+ k6 Y) Y/ {8 O& {7 f6 N& j P
% r* E: ?2 `5 K4 f( |可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
& w0 j& o; Y0 Q' G+ D9 @ N: ^: R' } b而事实上。。。确实就那样成功了9 p H6 w9 Q: l! W8 C+ Y7 |1 B6 i
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>3 V' A; W) G9 B1 v- G$ K( a& o
5 V- T1 \7 F! ~3 ]0 m" T
复制代码
6 M0 ]: s5 ]0 D8 U* o3 ]$ m当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
0 ?; C# _/ \7 V8 w
9 A0 @ A @( j复制代码
0 c3 z8 x1 g7 D# l# Y) d漏洞证明:9 \( G+ v: I2 u. o s
( Z3 E$ v" L% B( D9 ^7 D1 z
% `& d( y K1 |9 O/ s( ~, W
) i3 \5 [$ _! B9 O修复方案:对xlink:href的value进行过滤。
* I( ]6 A; k( z6 K" @8 k5 E6 Z) \
1 b! ^' ]4 V7 B* V9 F5 b来源 mramydnei@乌云 ) d# ^2 M; Y+ ]& F( i: d
: k2 ]+ l* Q. t& @ Z6 c' P- H1 Z; m( d# o4 ]: O& i$ q! Q
|