简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
1 h: ~) Z8 C: g3 n c8 l详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
& b5 M2 t# F+ g3 ]
/ ^, q2 r7 i7 m# E J8 r7 x' ]1 |# y8 }) [, T
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
3 b! N6 T1 m# @) |( N. Y而事实上。。。确实就那样成功了0 [* w! |2 e' ]" ]
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>5 g; e( O, ~# y* P
2 t( V" s# D2 i7 W4 N
复制代码
. a; [2 \. ]% q B, d) I当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort$ O* H: I4 ?: ?1 u( C' c. V
5 h3 |' v; q2 B9 X4 b, l2 }! r
复制代码7 C5 K# |+ q3 c3 W% i: n! n
漏洞证明:
6 q0 F9 Q6 x' G4 H& h' A) B9 _. p6 l3 i8 D4 F! X7 B9 U
' r( z# w }+ W; ^; v( B) U, v8 }7 u- P: l6 }, w
修复方案:对xlink:href的value进行过滤。* x! |! Y! x* U5 H: w
6 d0 o* x9 B" J* S0 M
来源 mramydnei@乌云 . `! E0 g" a$ H4 y
" t2 @. s* P6 d2 J
* G) z, [, ] h0 I# ^, D% S |