简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码# p& O6 C: \# _( y% U3 g
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么0 B1 S( A5 _$ b, t: z7 |
# L' | z% B! U0 s' v( o$ s% s5 m% P. K5 u
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。* F% d! b( ?6 e b$ x' m
而事实上。。。确实就那样成功了
2 y- ^& l5 T" u5 n, Z2 S" G有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>: {' Q( w8 z7 |4 @2 [& Z9 s
; t. L$ N0 g! g* p4 @) Y" @3 C. L: l2 r复制代码6 Y7 r: m+ j' F2 r" m
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort: N( x$ r# ~) E( E! D
8 D& X& c: r* s" _' @9 s, [
复制代码' Z* }- x5 s& o+ D# S2 K
漏洞证明:+ J: T* H2 c- f& n
' l, s u! {) \3 s1 Z: b
. o: u8 v+ u+ ^4 K4 M4 l
/ T+ {, |1 d+ r5 |/ \/ x# D修复方案:对xlink:href的value进行过滤。7 c& U# W) p' M& _, W! G
0 s& X" O% X8 |4 p+ c& I
来源 mramydnei@乌云 $ s. S" q+ z1 n$ o1 \3 \9 |2 V
) g u: `4 W& O E& G1 ^
0 \9 c4 r1 v- j& o3 m |