Spring Boot Heapdump泄漏¶
漏洞分析¶
Actuator组件为Spring Boot提供对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息。如果Actuator使用不当或者一些不经意的疏忽,可能造成信息泄露等严重的安全隐患。 heapdump作为Actuator组件最危险的Web接口,如Actuator配置不当,攻击者可无鉴权获取heapdump堆转储文件,分析heapdump堆转储文件进一步获取敏感信息。
影响版本¶
影响所有配置不当的spring boot版本,可下载heapdump
环境搭建¶
1. Clone the application
2. Build and run the app using maven


漏洞复现¶
探测漏洞是否存在¶
- burp apikit插件

选择自动扫描

发现http://192.168.31.239:8080/actuator

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

- dirsearch

漏洞利用¶
访问http://192.168.31.239:8080/actuator/heapdump,下载heapdump文件
使用java内存分析工具进行分析(heapdump_tool或JDumpSpider)

漏洞原理¶
heapdump作为Actuator组件最危险的Web接口,如Actuator配置不当,攻击者可无鉴权获取heapdump堆转储文件,分析heapdump堆转储文件进一步获取敏感信息。
漏洞修复¶
- 禁用 heapdump 端点(推荐)
- 限制访问权限
如果必须启用,应严格限制访问。
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();
}
}
- 使用网络层控制
通过防火墙/安全组限制只允许特定IP访问 actuator 端口。