简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码1 H3 n" p% z+ Q: L
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么9 Y: f+ A. r2 l; {4 D G
# [1 `7 t$ r% E# g0 r
& V6 j( [& }1 S7 }. R0 f+ Z可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。7 d# ~) ~' Y. q7 t
而事实上。。。确实就那样成功了
( f/ p8 I7 n, Y# h有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>8 D& @. r6 i1 b# O2 \9 w: m
$ R$ [% K# l0 W
复制代码
& Y! A' Z( f6 U当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
! E2 l; O5 `1 s A9 I ' k$ |1 p9 y! I9 @" V
复制代码
6 A/ d& k8 u3 G. ?* E漏洞证明:
0 I; j" t/ m' a' m& e# Y* l9 ^6 l+ t" w
6 s6 c" e3 U- |5 t# P
+ e% C+ q, v: ~* n2 z( [5 N0 |4 }7 u修复方案:对xlink:href的value进行过滤。0 g& T8 z$ P9 u( k
7 Z) h" V' X& e0 e来源 mramydnei@乌云 ; i% ?0 Y* A. w% Z& }
1 ]1 l& ~/ }; o* Y5 L# O( I& O$ U$ g: {8 f% _" R
|