【JavaEE安全】Spring Boot 安全实战:Actuator 监控泄漏与 Swagger 接口利用

📅 发布时间:2026/7/15 13:42:27 👁️ 浏览次数:
【JavaEE安全】Spring Boot 安全实战:Actuator 监控泄漏与 Swagger 接口利用
警告以下内容仅用于安全研究与授权测试未经许可的攻击行为属于违法行为。一、Spring Boot Actuator监控端点与信息泄漏1.1 Actuator 核心端点与风险Actuator 提供了一系列生产环境监控端点若暴露不当会导致严重的信息泄漏。以下是高风险端点的利用价值端点请求方法安全风险利用价值/actuator/envGET极高泄漏配置属性包括数据库密码、API Key 等敏感信息部分会被*替换。/actuator/heapdumpGET极高下载 JVM 堆转储文件可提取明文密码、密钥、接口信息等。/actuator/httptraceGET高泄漏历史 HTTP 请求包含用户 Cookie、Session 等可导致会话劫持。/actuator/mappingsGET中泄漏所有路由映射信息帮助攻击者发现未公开接口。/actuator/logfileGET中直接访问应用日志文件可能包含业务逻辑、错误堆栈和敏感数据。/actuator/shutdownPOST极高未授权访问可直接关闭应用程序导致服务中断。1.2 开发配置与风险点依赖引入dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency暴露配置风险操作在application.yml中暴露所有端点这是最常见的风险配置management:endpoints:web:exposure:include:*# 暴露所有端点1.3 Heapdump 利用实战Heapdump 文件是 JVM 堆内存的完整快照包含了应用运行时的所有对象。攻击者可通过以下步骤利用获取 Heapdump直接访问GET /actuator/heapdump下载heapdump.hprof文件。分析工具jvisualvmJDK 自带工具可直观浏览堆内对象。JDumpSpider专用工具可自动化提取敏感信息。java-jarJDumpSpider.jar heapdump.hprof提取信息从堆转储中可提取到数据库连接串、第三方服务密钥、用户会话数据等明文敏感信息为后续攻击提供弹药。1.4 可视化 Admin 界面Actuator 可配合 Spring Boot Admin 实现图形化监控但同样存在风险Server 端引入依赖并使用EnableAdminServer注解开启。Client 端配置 Server 地址进行注册。风险若未配置认证攻击者可通过 Admin 界面直接查看所有端点信息甚至操作应用。二、Swagger接口文档与攻击面扩展2.1 Swagger 版本与配置依赖引入2.9.2 版本dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependency3.0.0 版本dependencygroupIdio.springfox/groupIdartifactIdspringfox-boot-starter/artifactIdversion3.0.0/version/dependency路径匹配配置为确保 Swagger 正常工作需在application.yml中配置路径匹配策略spring:mvc:pathmatch:matching-strategy:ant_path_matcher2.2 访问路径Swagger 版本访问路径2.xhttp://ip:port/swagger-ui.html3.xhttp://ip:port/swagger-ui/index.html2.3 安全利用从文档到攻击Swagger 文档泄漏了应用的 API 结构是攻击者的“攻击地图”。信息收集发现所有接口、请求方法、参数和返回值。识别敏感接口如文件上传、用户管理、内部服务调用等。自动化测试将 Swagger 文档导入 Postman 或其他测试工具生成自动化测试用例。对所有接口进行未授权访问测试、参数篡改测试、文件上传漏洞测试等。攻击面扩展利用泄漏的接口进行暴力破解、越权访问。发现未授权的文件上传接口尝试上传恶意文件实现 RCE。结合 Actuator 泄漏的信息构造更精准的攻击 Payload。三、安全案例JVM 泄漏与接口自动化3.1 JVM 信息泄漏链一个典型的攻击链如下访问/actuator/env发现数据库密码被部分脱敏但获取了服务版本和组件信息。访问/actuator/heapdump下载堆转储文件。使用 JDumpSpider 分析 heapdump提取出明文的数据库密码、AWS 密钥和内部 API 地址。利用这些信息直接登录数据库或调用内部 API 进行进一步破坏。3.2 接口自动化攻击访问 Swagger 文档导出所有接口定义。使用脚本或工具如 Postman Runner对所有接口进行自动化扫描。测试发现一个未授权的/api/upload接口成功上传 JSP Webshell。结合从 heapdump 中获取的信息提权并控制整个服务器。四、总结与实战要点Actuator是 Spring Boot 应用的“信息宝库”heapdump和env是最高价值的攻击目标。Swagger是应用的“攻击蓝图”泄漏的接口信息可极大降低攻击难度。在渗透测试中应优先检查这两个组件的暴露情况它们往往是突破边界的关键入口。参考链接https://blog.csdn.net/drnrrwfs/article/details/125242990https://github.com/whwlsfb/JDumpSpider/releases