简要描述:对某标签和某属性过滤不严导致可以在邮件中植入恶意代码
* b6 Y* g- v( q6 \8 I详细说明:按照老习惯通过支持html编辑的邮箱往目标邮箱海量发送xss vectors然后看漏了什么7 }' u; N% `" d- {
2 [3 P9 c3 `) ?
8 Y0 Y8 {4 D, A1 I6 C9 _! v( m3 u
可以看到我的svg被提前闭合了,rect里面的 width="1000" height="1000" fill="white"各种属性也和王力宏那首“你不在”一样,不见了。。不过貌似对于xlink:href没有过滤这是硬伤啊。接下来只要能让我插入math标签,这个问题基本上就算是解决了。
& \' |% @( L/ a& Z( f% n% {8 G而事实上。。。确实就那样成功了
* v0 B- [" x# w L: P! e: X1 M; \有效的payload如下:- <math><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="javascript:alert(1)" target="_blank">abc q<rect></rect></a> </math>
" D3 v! U6 n5 P ( A7 x1 j4 T2 v, ?% t
复制代码
, m$ D' K0 g; X2 M9 S/ {+ }! \当然也可以缩减一下,写成这样。- <math><a xlink:href=javascript:alert(1)>I'mshort
+ {2 q( \/ Z# m, e
$ o" k$ @9 C+ C8 ]8 \; e复制代码
! t$ K( S, Z9 i0 U9 p8 W7 O* j% z漏洞证明:
0 c1 s. n5 B G! ~: L6 G5 U9 e. {. |& X
5 c% p! D- U/ ? U% C5 b* w! r% v
修复方案:对xlink:href的value进行过滤。
1 N: h8 I4 w1 H/ k3 m3 M/ |. T3 ^7 W X; |- B& K0 G
来源 mramydnei@乌云
$ C9 s" }# O( M7 }" a5 ^# \( g5 R0 M. X+ E! B
4 ~# D! e+ J' ?( j% V& e8 I( V% j: l |