简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码" W0 P; S/ o' _& ?$ F( Y& H
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么0 t/ f6 G" R; K# B- [
: [7 U4 @& W* ?
; A( ?+ B+ W/ U) W
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
7 }' H" P- D+ o7 o9 h! D$ x) D而事实上。。。确实就那样成功了( G4 E" B7 ^3 H
有效的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 `7 G4 y7 g5 Z0 [/ v( ` . ~6 @& x7 h' \
复制代码
" y- O3 a$ x% M* K6 R: ]* A; U当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
( C5 H: ~' b4 ^5 k. ^/ |; v
% Q! r# ?( | c. y1 y* `复制代码
- |) B; w2 x8 \" j6 P漏洞证明:7 [- \! V( _0 o$ z; y7 a1 G
]+ n8 m5 T2 ?
k# G1 p$ R% Z
: L$ L( W8 }6 q9 J) g% h3 @5 j0 O修复方案:对xlink:href的value进行过滤。
+ B% L0 `6 e( `1 y1 T
& u, h" ]% O4 I. s- m来源 mramydnei@乌云 $ D6 d1 a p6 A/ q$ c: k& P: m
7 |# J# [' A; S2 Z( a9 x
& k: ?, ~* q# Q" S
|