简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码1 A7 D: G% {- \8 ?
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么+ `) m! Y" D2 i8 e5 ^" K( U
' B. y2 E5 Z- {( P+ u4 g# b! K$ k
( D0 T% s) d3 y/ H3 Q: D& G+ e6 }) L* ^
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。# U( j6 u5 d: J; W" p
而事实上。。。确实就那样成功了
! g: ~+ r) F0 W0 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>( R2 b. K d! [+ h: @2 _3 G
" K6 [; q( B: z7 b4 \- J& j复制代码
+ h, V1 P$ Y& D! u: |( x! d3 L当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
. X& h5 z+ ^5 T6 R! _ 8 I0 r: f* x9 q6 i( e6 S
复制代码+ O# U* q' F& D d% B7 k4 W% k
漏洞证明:+ l8 [7 ]3 q4 C# B0 T2 H
/ }7 L& w5 ^' o: L* \
0 z5 a0 `$ P2 m8 a
* n& d. O9 r, f I
修复方案:对xlink:href的value进行过滤。! d$ j9 E5 u1 j9 A- L
; ~/ m$ v+ Y- B, d" G% J# n来源 mramydnei@乌云
! E2 v- q7 l4 E3 r
+ z3 H/ Z3 e" \6 Y) e# X
8 H+ [2 \5 M# \- C, n2 l1 a& e# @ |