简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
$ S% D8 {- ^; T! s) P3 E! x1 e详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
$ ?: Y# V/ L4 V, Z$ P% d! K
% Z1 S3 |; |- s5 Q! W2 [# r0 B3 t$ d2 J7 g6 E* X) f1 C9 X
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
6 h" }/ W. U# K" Z% h e( i而事实上。。。确实就那样成功了8 _- @2 Y3 O! K; Y
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>- U5 I M m' _' h. I
; b7 h3 ^5 s$ T4 S复制代码
' I6 _+ m; w6 l3 n4 z7 e, |# ]当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort0 l/ c- a6 `4 z" X
: N" }5 o, O: f
复制代码6 L, ~6 A+ Q4 g8 j0 m* s$ e7 n
漏洞证明:
; y! x5 c( L: G6 O+ g5 A" a' q( O ~( D6 n
/ t+ d9 {3 ~" v( o. i
2 M: ^4 r6 z& \- i
修复方案:对xlink:href的value进行过滤。
; h4 Y6 N9 \6 R2 I1 S# b
1 v' i+ s- M, { T( C来源 mramydnei@乌云 * s4 a' S- E) v7 ?* y) d
/ v4 Q4 l+ I }" }' N! Y6 N- G3 O. X
|