简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码2 R5 e5 b+ H/ z$ P
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么# I S# T& n% b
) P/ f$ v# V" p+ r& H5 V7 k
+ h. p3 w, {- y6 ]8 }- [可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
' M5 G$ I0 O0 ~6 w: }0 U9 b) R8 f而事实上。。。确实就那样成功了
: Q$ @, n' y3 O4 t2 ? J7 Q6 n! e有效的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, _) O5 p4 P2 q8 ]- ` % d: F. f- ]$ [
复制代码
; S3 M8 Q+ q/ B w5 U! O1 {当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort5 A8 @( Z/ d- D* Y; ?8 z5 y/ Q
1 G4 N5 M/ v# R+ Q6 i. a
复制代码
% Y6 [. d; O" K, U: b) n! `6 H+ {5 e漏洞证明:4 Z$ ]3 V* }+ p, V3 g7 c% f" N
. H0 u2 u3 k& X
% O3 w! b- q4 P$ K) a- Z0 q
2 n' L8 }" A" v3 _( L! A修复方案:对xlink:href的value进行过滤。
& t* h/ E. c: G w( r8 G' _, ^) {$ D: M! g" i7 M
来源 mramydnei@乌云
/ @. V" h+ a7 Q
6 B4 g& s7 D; ^1 l) K
2 q$ b) O4 y' G; S& L5 n% z% ` |