简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
4 ^* T. K4 E6 G$ `8 w5 t详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么! Q M8 f! P3 h1 o% x. \. h
3 ^1 U" c1 J5 s/ E2 V! O9 c4 k7 V2 T* p( R9 H
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。9 e# \- \& [7 Z2 ?! R
而事实上。。。确实就那样成功了1 p, ^2 B1 X# k$ a
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>) q" P$ Y, c$ r2 ]
) a, W& {. p6 s F \
复制代码
# T c# L3 e1 e( z当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
! W# J& I. x+ m* r; @* Z ~' t
* c* Y8 u2 [* t& p. ~1 r复制代码
: ]: G) U/ U2 m0 O; _漏洞证明:5 `% N1 }0 p! [' U( N5 T
" A0 v0 z) x9 I* N1 U, u) e
9 C3 ]& @4 s; u. d# h8 m: `1 T! Q( G' N
修复方案:对xlink:href的value进行过滤。* I; ?' q4 L) v
5 U3 }' t3 M3 ^' G7 Q, f. c* j# a3 T
来源 mramydnei@乌云 ' T9 O2 j# h9 L$ D1 p* s" _! w. W
; F# r, q! L. [& p8 { [
# V( @2 y9 g4 d9 l' Y w3 W |