简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
3 o' |+ t" h3 }8 z详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么6 G# @+ w* T- {8 A/ v% I
2 [* X6 Q4 s& ]' q
% A; c) @, N0 {8 J1 h, ^' l# L8 W可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
" e; i6 ~/ c3 {5 a; Z而事实上。。。确实就那样成功了+ K6 |2 o5 m' R4 h
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>: l# h5 H% M% x! ^' o
" I R2 l9 N3 O j: q, n, |
复制代码* Z, }9 l/ m: M1 M
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
+ U: Q+ R# q2 H+ V2 D 9 U8 K) Q0 j2 ~7 o
复制代码
* O6 T& V8 M" ~+ w漏洞证明:1 E" C5 ^% P4 a' o( b
5 `" T. @: S) M6 O
- N D. `9 p H) K
5 O7 I% c" Y/ x; V' k& G
修复方案:对xlink:href的value进行过滤。
. U) F' @+ l! Z0 E8 D) v6 ^" o' T1 T1 V6 M y! j
来源 mramydnei@乌云
/ W" C, t4 _1 g* y7 l: f
# U% [) Z6 `3 M9 J3 Q* i" o1 I: P6 h7 v6 V
|