简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
5 ? k7 L N6 ~. p% c) d+ ^详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
* k+ `- E4 c' ]# N
0 l1 p5 U3 z0 I+ t1 f
, f: T2 q( z3 |; t; U: j/ }! ^可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。0 t3 O7 l! p; M3 f w* P7 D
而事实上。。。确实就那样成功了
$ g( b3 I% x+ y4 G* S- ?1 d) K& `( c有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
+ h. \* G) R/ y! v( x* j4 O - M2 S6 X0 `/ J2 _, k
复制代码
/ o2 S- o. Z1 O& S K$ t当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort- q4 ?, e' r7 `5 n4 q& }$ ]8 ~2 d
3 v3 ^9 S2 |% a8 S/ B0 Z+ h
复制代码3 z- S6 s8 X, r. z4 O* x
漏洞证明:
$ o9 i, N6 L* C+ Q2 M# w! e" C: ]$ L1 N$ i" Y |. a
4 m- P) c% h) v9 }& K
6 g, Z t1 @# y# F3 V& c$ m
修复方案:对xlink:href的value进行过滤。8 g# _- \) D h) Y5 {
3 `* w. P( a$ U
来源 mramydnei@乌云
3 H. ]# z/ s( c, y0 W( w9 k9 s# _2 F6 x4 v
! ?- f$ V4 ]" t6 J |