跳转至

Spring Boot Heapdump泄漏

漏洞分析

Actuator组件为Spring Boot提供对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息。如果Actuator使用不当或者一些不经意的疏忽,可能造成信息泄露等严重的安全隐患。 heapdump作为Actuator组件最危险的Web接口,如Actuator配置不当,攻击者可无鉴权获取heapdump堆转储文件,分析heapdump堆转储文件进一步获取敏感信息。

影响版本

影响所有配置不当的spring boot版本,可下载heapdump

环境搭建

callicoder/spring-boot-actuator-demo: Spring Boot Actuator: Health Check, Metrics Gathering, Auditing, and Monitoring

1. Clone the application

Bash
git clone https://github.com/callicoder/spring-boot-actuator-demo.git

2. Build and run the app using maven

Bash
mvn package
java -jar target/actuator-demo-0.0.1-SNAPSHOT.jar

image-20250706144824235

Text Only
http://localhost:8080

image-20250706144838054

漏洞复现

探测漏洞是否存在

  • burp apikit插件

image-20250706145828679

选择自动扫描

image-20250706145936204

发现http://192.168.31.239:8080/actuator

image-20250706150044218

进一步发现http://192.168.31.239:8080/actuator/heapdump

  • Fscan
Bash
./fscan_arm64 -h 192.168.31.239

image-20250706150442992

  • dirsearch
Bash
dirsearch -u http://192.168.31.239:8080

image-20250706152449148

漏洞利用

访问http://192.168.31.239:8080/actuator/heapdump,下载heapdump文件

使用java内存分析工具进行分析(heapdump_tool或JDumpSpider)

Bash
java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump

image-20250706155031889

漏洞原理

heapdump作为Actuator组件最危险的Web接口,如Actuator配置不当,攻击者可无鉴权获取heapdump堆转储文件,分析heapdump堆转储文件进一步获取敏感信息。

漏洞修复

  1. 禁用 heapdump 端点(推荐)
Bash
# application.properties
management.endpoint.heapdump.enabled=false
  1. 限制访问权限

如果必须启用,应严格限制访问。

Bash
# 只允许本地访问
management.endpoints.web.exposure.include=info,health
management.endpoint.heapdump.enabled=true
management.endpoint.heapdump.sensitive=true

配合 Spring Security 进行认证:

Bash
@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatcher(EndpointRequest.toAnyEndpoint())
            .authorizeRequests()
            .anyRequest().hasRole("ADMIN")
            .and()
            .httpBasic();
    }
}
  1. 使用网络层控制

通过防火墙/安全组限制只允许特定IP访问 actuator 端口。