简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码# Z! X* b: P1 d( n$ Y0 F$ s. }
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
! _6 h; W$ X6 x5 X) ^ P' m1 d7 V1 o- d/ q# {( C7 f
; U! ~& d, M& h7 L; X0 b6 @, k可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。2 j. @ _4 ? k% D7 B+ V! ]$ V
而事实上。。。确实就那样成功了8 R% c4 I% \2 H+ G
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>" \" N) V: Y7 F, \
3 F: [# x9 @0 @2 l1 E
复制代码
$ u" z- j6 Q7 x* O% i+ E( c0 L当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
( d! m5 R0 o6 s9 y. d- E5 t) u * [6 q8 n* W# ]5 Y
复制代码
5 T" c: K/ r- Z( z" o# \漏洞证明:$ V0 N: a' A; q3 c/ o' V' w O
% e" [8 \/ A8 _' h4 b2 s! |3 ?/ ?" }. }& f9 `7 e
( H1 t0 E! I& V4 V( B) u8 C
修复方案:对xlink:href的value进行过滤。; C! }" q8 D" y' N) b
' |& O- d! h0 H, }
来源 mramydnei@乌云 4 r3 a% Q% |: V5 v0 C( m
% {# I& H" i; e; n/ A
) L9 d3 O$ b6 s; D# d( |) ` |