简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码. i: O% A/ `7 h4 J1 m% ?
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么, n1 k2 M, V* x2 A
- B& L& i) g- s0 W$ h, b. W Z
% i7 x" i4 t& x- W5 `6 M; F2 U
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。0 v8 `' L8 |$ V$ v
而事实上。。。确实就那样成功了8 |) f) [3 N( M' A2 y3 u. J( k
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
/ A M% S. J9 [7 {$ O- _- {+ t* D 2 B" J1 t- `& Y1 Z2 d
复制代码: E+ C0 v% f' p$ e2 e& n n
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
3 r: ?) p: n; |8 E/ c. k
+ a) g: ]9 A2 [9 }( k1 |9 Z复制代码
: `& K4 Y8 c* T* u( F漏洞证明:* R% J# i9 j' w4 t
: ^% k% f! E) t0 n
8 Y. U+ U7 B, ^+ ?& [. ~
: L. u1 V# e4 I. q- c' `修复方案:对xlink:href的value进行过滤。" g" ^, |4 {$ V z
' R0 |, v, p6 a0 y1 P
来源 mramydnei@乌云 - M7 E) V( \) m( }+ H' S9 o
/ J' z8 j: G; e) o" ~, m$ s! V. D" E) ~- j7 \$ ]8 W
|