简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码) o/ w- y$ ]) o3 ?- Z. `/ O
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么$ Q& G& L; J" d4 ]! Y7 w
" F( u4 W: L# w6 X# e
& r5 B( L# X0 r4 z. g( ?3 J
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
2 b* L7 `+ O# L2 V* b! L2 [7 f而事实上。。。确实就那样成功了
: \& V9 j' L$ S# C% v4 f# O3 P有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
3 e$ J! s7 ^! i3 r 4 I+ _' s0 W" u b
复制代码& W9 R7 z/ L6 a7 C3 M3 |
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
" h# y9 e( [& U2 s' i8 E . r2 Y7 g4 c. W2 e& b4 ^' ~
复制代码0 t1 x P) }- z) d6 [7 i
漏洞证明:
' k8 U1 o) j5 H, M z+ k4 t1 H3 g4 O( X; W
# x2 `: K9 m$ w! p
# S3 j% T* ?% o. f2 Y" `: m修复方案:对xlink:href的value进行过滤。
: j. o" m4 }$ O1 E
" j( i$ k% k8 u' Y- j9 o! C. t来源 mramydnei@乌云 * M1 _, G" H! V Z# v
# B# B) t) |9 J' O
! N* Q- [2 g3 A, Y V |