Spring Boot Actuator未授权访问漏洞利用

本文详细描述了SpringBootActuator中的未授权访问漏洞,涉及`/env`端点可能导致环境属性泄露,特别是通过`heapdump`暴露JAVA堆dump信息,可能进一步引发更严重的安全威胁。

Spring Boot Actuator未授权访问漏洞利用

1. 漏洞描述

Actuator 是 Spring Boot 提供的服务监控和管理中间件。当 Spring Boot 应用程序运行时,它会自动将多个端点注册到路由进程中。而由于对这些端点的错误配置,就有可能导致一些系统信息泄露、XXE、甚至是 RCE 等安全问题。

2. 端点

官方文档对每个端点的功能进行了描述。

路径	描述
/autoconfig	提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
/beans	描述应用程序上下文里全部的Bean,以及它们的关系
/env	获取全部环境属性
/configprops	描述配置属性(包含默认值)如何注入Bean
/dump	获取线程活动的快照
/health	报告应用程序的健康指标,这些值由HealthIndicator的实现类提供
/info	获取应用程序的定制信息,这些信息由info打头的属性提供
/mappings	描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系
/metrics	报告各种应用程序度量信息,比如内存用量和HTTP请求计数
/shutdown	关闭应用程序,要求endpoints.shutdown.enabled设置为true
/trace	提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

漏洞访问

/env,获取全部环境属性

image-20231129155333324

漏洞利用

/heapdump 泄露JAVA堆dump信息,可以用dump分析工具进行查看

image-20231129155932870

第一种工具

image-20231129160441255

第二种工具

java自带的分析工具

java目录输入jvisualvm就可打开

jvisualvm
查询语句
select s.value.toString() from java.lang.String s where /pass/.test(s.value.toString())
select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())

image-20231129161657207image-20231129162915279

image-20231129161645707

总结

这个漏洞一般是未授权导致信息泄露,更进一步危害还需要找敏感信息,比如sql、redis等账号密码,不过一般都存在这些东西

ps:真实环境所以打码,干活时开发的说这不是洞,不修,结果只好继续通过/heapdump利用,找到数据库密码,连接、截图一气呵成

放个图

8a55bf350a4d4e90890c83a7a64955af

Spring Boot ActuatorSpring Boot提供的服务监控和管理中间件,借助该模块开发者能方便地对应用系统某些监控指标进行查看、统计等[^1][^3]。 ### 漏洞原理 在Actuator启用的情况下,如果没有做好相关的权限控制,非法用户可以通过直接访问默认或暴露的Actuator端点来获取应用系统的敏感信息或执行恶意操作。默认配置会出现接口未授权访问的情况,使得非法用户有机可乘[^1][^2]。 ### 漏洞影响 - **信息泄露**:非法用户能够获取应用程序的配置信息、环境属性、日志内容等敏感数据[^2]。 - **系统破坏**:可以修改配置、篡改数据、重启应用程序、关闭数据库连接等,破坏应用程序的正常运行[^2]。 - **命令执行**:在特定条件下(如使用Jolokia库),可能远程执行任意代码,获取服务器权限[^2]。 ### 修复方案 关于Spring Boot Actuator未授权访问远程代码执行漏洞的具体修复方案,给定引用中未提及。通常可以从以下几个方面进行修复: - **配置权限控制**:为Actuator端点配置合适的访问权限,例如使用Spring Security对端点进行访问控制,只允许授权用户访问。 - **限制端点暴露**:只暴露必要的Actuator端点,将不必要的端点进行隐藏或禁用。 ```java // 示例代码:使用Spring Security配置Actuator端点访问权限 @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/actuator/**").hasRole("ADMIN") .anyRequest().permitAll() .and() .formLogin(); } } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值