简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
" \* R5 G5 S) m% v, {# q/ C; {1 X+ }详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么6 ?, t: e/ u/ O% M- B/ i
* |) H/ n/ ^ L( l. _9 c' x
2 r. w/ b& h, x: @8 w6 c
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。. c( q3 n, g8 C8 y( m2 O/ N0 T5 [
而事实上。。。确实就那样成功了
" R" m: i! n5 z7 I/ v4 B: a8 T有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>( B+ V7 J, j& j0 X& [( i9 d
/ e+ \# m& x. S
复制代码
2 d0 B' ?; B9 k6 C& F* h当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
" o# `: T/ y5 G" I- G1 T8 ^2 V- ~# k 0 T+ a2 C! f- B. }8 L6 j
复制代码
2 W4 n, b* u$ c, k5 c" `* \& n/ v漏洞证明:7 j% v2 @" H% t/ E4 R
0 V/ ~+ `5 M( o9 [
/ k' c) \, v# G6 S7 p4 [& J4 j" @1 A# z2 ^) x$ M% g6 r$ p
修复方案:对xlink:href的value进行过滤。
/ q" Y% ?( h9 v" A7 t/ _; Q3 c8 A: u, R
来源 mramydnei@乌云
" L# s5 H5 @8 V, w9 Y, u |( Y4 { p
6 ^, i @ I0 x* A. N% L
|