简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
/ M' c: @: ^8 \1 X/ E详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么
: d. ?2 N: ~6 Y0 X
1 P7 g; F" C: L& }2 N
7 i+ Q) F( \0 i% {" i可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
: I+ N) P, [9 s3 W而事实上。。。确实就那样成功了; q$ f: }" y, K: y
有效的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; @$ K4 M. {* J5 F6 o; ]
( j7 ]' U; U0 ?% Z2 g复制代码4 q6 G2 Y8 `' h9 G, ~
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
/ ?( U! P% p2 Z F 4 o9 w4 i6 X5 | i- c* {
复制代码
; b! Z" A9 @- Q1 {9 q' ?漏洞证明:- u$ i: \6 a6 W1 s( o
! ~# ^6 O. E( \6 W! ^# h# g4 L) ]3 ?! ^5 @( E- n+ _ Z
/ \; k" v$ Z( ?, A% o- |5 F
修复方案:对xlink:href的value进行过滤。
# f+ |% B7 N5 U4 d2 c$ f; N9 U# A: o$ j4 t" E
来源 mramydnei@乌云
0 Y5 o& U% y, I* h
5 r7 w/ g( X& @: K- @% C$ r( f2 Q. g" e1 I( N
|