简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
f7 b* P0 N1 _8 ^6 U详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么! Y- W- V" W7 I! z) y
* J: g' P$ w' R$ M8 O3 T. d
r- ~. r+ T' }9 Y) o3 m5 E可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。; f7 H" P+ k) w
而事实上。。。确实就那样成功了
- B2 f& t) d7 d* w$ q. h3 T5 E有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>3 Q7 ?& t6 u; H8 M& ^
# }+ M- {( s- f1 a! \
复制代码
- i5 v4 A+ X, D0 \/ m9 i: d当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
" r5 N" |( T2 M: g: a j9 [7 U
+ d+ m- M! I6 @1 D7 a复制代码
) f ?/ t) |: c, i漏洞证明:
* n* X B4 p5 x* N, K7 T0 |3 m2 M& p4 @% U% ^+ m
. M) u" H5 i& d' Z; v/ |& t+ q( R$ V* a+ D
3 H1 l, J& I; O/ c$ e修复方案:对xlink:href的value进行过滤。
' u& |. y6 D! k0 C. N9 m3 ?1 q$ _( a1 U5 y) R$ j
来源 mramydnei@乌云
/ P) B2 B# b9 ]4 `0 c! t& W, A6 m/ W* w" f
& r- z+ Z* J% i" a( I0 u
|