简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
9 E9 y& P0 g0 E9 K详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么/ b4 H# t0 t% Z. g& u0 x1 L
/ N* X: T) O6 \; j0 |; r) j; n& A# T; E5 Z( O" N( v
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。4 T1 Z B* p4 _) ?
而事实上。。。确实就那样成功了8 y4 W9 b9 A! a& R
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>" N3 f* X3 E4 L; T, z
/ W) s' c( Z! ~3 r. J M复制代码
$ n' U, u( G a, h1 X, f& M当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
* V, Y) ^5 i% V0 R. u- \
/ @8 Q) ~3 g9 A5 F- H1 X复制代码
0 y4 @0 d% U5 ~3 l/ {* X漏洞证明:
- l+ o% n1 k9 ], f& y
9 _3 v# ?8 T& k$ K9 S3 M7 }0 Y" u8 \
; g: w/ Z: H/ ~+ R j* A; y+ G* u4 U0 I; t
修复方案:对xlink:href的value进行过滤。
$ P; z y9 S M6 {, S" {# ]' D3 o7 P& _+ d
来源 mramydnei@乌云 + v% }$ f, ?" f2 R( t1 ?
( r9 d t' s% X. r
2 @; g) p+ ?5 g6 u |