简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码, J% P/ r) B' n( l# x1 g' K3 C) N
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么3 o; G: b( K2 W6 q4 R
, Q* a' m9 _" F2 C5 A& B& o- ^, s
. m8 ]4 m$ y- t3 F# e/ v
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。1 O4 l+ n Z4 U
而事实上。。。确实就那样成功了
. X# H) C4 l- _3 s; ]* V+ g w# 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>5 W& Q% ?# V9 p, m- ]
0 L) R! N0 n8 }2 r, w$ B: @: K
复制代码5 R5 A4 q( U. N) {& [
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort+ N% N6 v- p! V4 M+ u
) q- g( X0 N- D. X复制代码
! a( H% X9 u% m7 Z: ?4 n( _漏洞证明:
0 i/ w1 _% h: n) U) Z! c6 a: l# S, d; _! E; m
. E9 v. H. ~+ x
7 [6 V, R: m8 o/ H8 k# {7 `修复方案:对xlink:href的value进行过滤。1 ^9 O- l; t4 V* Z
# B5 h0 ?7 C# K7 H$ Y; B/ ]/ \: P" f来源 mramydnei@乌云
! Q. V$ H( e: r. R* o: y
5 X" {+ A! p/ N# U/ K i. F9 h4 G' f4 L8 ~1 J- C
|