简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
; m Z+ L6 ]4 {; {8 d% C' s3 F- o详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
2 l* e$ r3 J1 `! f' q2 a
/ V9 ?8 H) [( S/ p5 F; H' d# a, ~" x" r8 k
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
0 Y P S& g7 b9 ~而事实上。。。确实就那样成功了
' D9 x5 u$ ^( ^0 T$ E8 t8 `8 _有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>$ M L' B5 a# k0 U4 n" b
% L! G( j, u' g) B d% m- n2 v, H) I复制代码
: G. |/ E# U; v- B. S5 X% P当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort% B( i: C7 f2 d+ Z/ c5 i$ a
E r7 M' o, Y! d0 b复制代码5 K" m" J, L9 Q( o( }
漏洞证明:- N9 O# _/ I; u; j# S, s9 o
; C8 D9 `& v, i; @" b- d- h" F" j: r l7 ^. ^: P) `
* k" \1 A3 _0 g9 ~0 {- E1 H; L修复方案:对xlink:href的value进行过滤。
p. V# Q0 y- Q8 N' y7 a: X7 H/ n+ G5 ?7 A( C5 [. t
来源 mramydnei@乌云
$ \) B6 n( w7 g) A/ ]" v# D" @0 C! x/ q) O. T6 ]* K
% m/ V# R' M; o( T* @% Q$ p |