简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码( [: }/ e2 f! y9 |- V1 d
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么 _& Z' K5 b g' {7 u0 x
. h% x7 G2 y4 @% w, Q0 A" Z+ X2 B/ H
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
. j% G( P3 S" O+ P0 R J% w# V$ }而事实上。。。确实就那样成功了' z3 t! W* ]+ l5 H( W
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>) w& u: ]# W! z
9 U/ S6 V% y/ O- t
复制代码2 z) V- A6 c4 v1 o$ v5 p, f2 J" S
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
. g p2 O U; T& D% i' Z3 } / W0 T7 Q4 m. p" E+ w4 ]
复制代码
3 q7 C+ \8 x7 e: S+ `7 {漏洞证明:
; n4 ^ V* u+ X" N
$ j# K3 @- V! n, D
+ l( w' R) |4 Y. E( C' z! s, z3 y$ L Z, F; w/ F8 g' R
修复方案:对xlink:href的value进行过滤。
% ]" D) w# B1 K) U) S5 [/ O! R$ w' V
来源 mramydnei@乌云 1 f. F! B9 g2 ^: b8 ~( z' |# c
$ G% V6 J! f' w" J" k
, o9 N5 e( o1 h$ \8 f
|