简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
5 ^& R D5 u/ l' u详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
$ U' d; e N2 q0 _, J
/ Q ]: h9 k8 S5 C# H6 e! y# _$ j+ |
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
- F, w, S' U( n% x: Z* r: g而事实上。。。确实就那样成功了$ W3 d: Z7 d, w6 m
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
@1 U1 b' J" }& A& z( Z# e
% C" j# ?: L8 n' W0 Z复制代码
9 V, E! A4 {' ~1 b0 j当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
: V/ g/ _. X+ A+ ]$ V8 y
5 C* P, y% ?/ U: h复制代码
/ P6 z8 q3 W0 a$ _1 O漏洞证明:
5 O. g8 m; O. ] O" `$ z
. u4 |9 k' b1 D8 V' F# L
3 h" q8 N" [9 }! D0 o
! E7 }+ S3 k; W& I' \! X3 d修复方案:对xlink:href的value进行过滤。
4 c$ Z; q( j: P G4 d9 n+ o2 L. g& F" X; N
来源 mramydnei@乌云
4 c3 m, C" n5 w/ p) ^* V
; u" a6 {& C- W6 P1 w* b1 Z0 e) h# S0 y
|