简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
z5 ]' O/ m k- \& L详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么; G# f5 C/ ]+ a
, b: z" D, f# f( q0 n4 n
& N. j6 n8 b/ v
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。5 p# |: k$ {5 R$ t+ U1 |
而事实上。。。确实就那样成功了/ M$ |+ t5 b5 R3 J4 `5 Q1 L
有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>* I8 u/ M' M' q5 D5 w
# d' b9 K4 w- ^% a1 R复制代码7 _4 U0 o$ M0 z$ P9 j( u& g
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
) K' F. i* y* `" S
3 s" m/ w1 O% I# m4 G$ `复制代码# s$ L* P' ~% l7 N- n
漏洞证明:
1 E0 Y7 z* `7 n4 M3 a( O8 j1 S* _
6 p$ }2 u. K Z3 Z2 }" E3 e% l1 q
2 I0 L8 a' z6 S7 ~修复方案:对xlink:href的value进行过滤。* O9 V" H: v* t- s9 D f6 H& T
6 O/ b: }7 K; u2 I ^来源 mramydnei@乌云
0 ]7 C9 Z% t. }/ s
* G' T! ~; k+ F* f- Y; q( D
/ g2 J! Z% t- @: L5 Z/ O |