简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码3 A! J/ I6 x$ L+ }/ y& {) c! {
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
9 t( J: K# _* X5 ?3 V9 y3 Q8 s( n o8 q9 V( t% G, _
* R' D& v% e( |& ]. J6 s7 Y
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。. O2 c; k. ~1 `8 ]; H" _" }
而事实上。。。确实就那样成功了
- M; b3 b7 c4 r; Y" q有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
. v- _% e0 j9 c& V " H7 o, T2 Y6 t% r3 u! t# j
复制代码
; v' ?. O6 m0 J) J当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
8 c4 B& C s; T! L# } 2 K5 O4 L$ i& M( c, l3 `8 x4 e
复制代码' Z' L; {" g8 D" K7 Y
漏洞证明:
) K0 o- }% j( G) X
1 h% C* r% m6 n J; G+ H5 w( a6 k- {. e$ w( J0 ~5 u5 k( P
- |. l; H6 ~% s( S修复方案:对xlink:href的value进行过滤。# \2 V O2 T [. l, V5 O3 I
1 f7 u2 h! \8 i1 s: u, W6 j6 Q来源 mramydnei@乌云 & k, R( j H I1 P# G
) o' V) v0 m- T
) n# O& e1 C7 [, J |