简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码# `& l0 s: |- Y1 W& l% \
详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么4 y! |6 s* v6 p3 Z s2 `% ~6 }
/ `; z% U+ Q G' i. K$ w
* a6 p8 p+ }$ A# w4 @
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。, i+ i" B& u/ k5 |, i
而事实上。。。确实就那样成功了8 s* A1 x* |( ~3 O0 D+ n- ^3 f0 w6 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>6 X$ ]0 M" X" z
% d+ n+ f6 K+ D8 q; \ g0 U% w9 S复制代码( p" Z0 l5 u/ {) Z: x3 I
当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
, L7 c1 \ L4 X/ c8 p0 e+ Q* Q ; d6 L5 q7 Y g- Y* Y# Y
复制代码
! ^0 R1 |! g% R( F h- @3 W: d/ F漏洞证明:
( L/ Q2 I/ c, |6 [/ A. ]
1 d8 ]8 {% j6 z d" Z/ a8 F# C9 T0 R2 H6 r
; V2 `5 t4 Q) B, _
修复方案:对xlink:href的value进行过滤。+ f! q* m: H* U0 o* @$ V' Q- E8 t
1 o. w4 ?2 o7 W( ?4 R* V! `, d
来源 mramydnei@乌云 ) P+ E6 b& ^' Y6 \
" E; Y; t. X3 d3 }; _% i
: X m$ ?% N9 a0 B7 x# H |