简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
& H' _' L$ L1 D: D5 I% V9 D详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
7 p! ]" t. {: e, ^( b, o
# K0 a2 g7 f+ t1 m
9 y: `% g& x6 `* s4 p/ n可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。; r$ T8 \. W/ Z* M6 t7 {
而事实上。。。确实就那样成功了9 T# {7 i+ u& C. ]8 C: d$ J7 A
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
4 Z- w% j8 x6 b, o
# }4 T* x1 v2 m复制代码' y g; L; l1 D) K
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort/ M0 A. j1 }% E- p6 n9 j, s
" H' Z1 K+ d2 t% z. f/ P复制代码
4 i/ m( Q& W f1 Y; r+ Q' P漏洞证明:% ~7 V" e* p; e* e) X
- k$ x, r! w" j5 k9 _2 ~
- O" [* f" D u" \% L
6 V# M- E! ~1 L Z& B% p修复方案:对xlink:href的value进行过滤。
6 N$ s) {7 k# W- n! `0 ?3 \8 E* r8 Y, R: c
7 K. O. ?* z; D. w/ g来源 mramydnei@乌云 + F7 P/ M* ?! S- ^/ [9 d
$ @( f4 d3 ]( J* n( U* l. b- f
; }0 S* N9 `" C |