简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码 z* D/ c0 v5 K6 {8 r) D J( x
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
* ~7 l- q5 z1 {, G/ d3 {; n) |& S0 K7 G' N0 g
9 N. q, g* Q! B6 L F2 m
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
! |( H2 z( @ J& e6 N而事实上。。。确实就那样成功了
# N. r' m6 i/ O8 B4 x有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math> P. L5 Z0 \4 Q" t; Y1 }1 w$ a
6 j( o7 g: @) _# ] P, _/ n
复制代码
' a; h( |' ^+ c1 O8 h, g当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
1 ~9 { L& H1 t4 q" e9 B, S4 n ( Y1 u2 }+ Y" K: D5 g. K! r/ a7 `; {
复制代码: d. L& T* \" x- ~7 ]$ m. w5 K
漏洞证明:
# s6 g6 @1 k& H9 K: q/ f- x% e) L9 i8 F- X5 K) [; i4 b2 F& B$ X
6 f4 j |; d% O8 w) U, j; L; ? h8 l
修复方案:对xlink:href的value进行过滤。3 u% v3 b$ _2 F; x$ ]
6 I/ E. K. f" @, G. Q# Y& a来源 mramydnei@乌云
" w) s; ], V0 c8 r) F) J- P
- N6 E2 \0 s6 _/ B2 R
* y* `/ I) H) _- l @# `5 G+ F% Q |