可造成敏感信息泄露!Spring Boot之Actuator信息泄露漏洞三种利用方式总结
2601_962056602026-08-30 16:30
1.介绍Spring Boot是一个基于Spring的套件,它提供了一个即开即用的应用程序架构,可以简化Spring应用的创建及部署流程,帮助开发者更轻松快捷地构建出企业及应用。Spring Boot项目中Actuator模块提供了众多HTTP接口端点(Endpoint),来提供应用程序运行时的内部状态信息。可以使用http、jmx、ssh、telnet等来管理和监控应用。包括应用的审计(Auditing)、健康(health)状态信息、数据采集(metrics gathering)统计等监控运维的功能。如果没有正确使用Actuator,可能造成信息泄露等严重的安全隐患(外部人员非授权访问Actuator端点)。其中heapdump作为Actuator组件最为危险的Web端点,heapdump因未授权访问被恶意人员获取后进行分析,可进一步获取敏感信息。Spring Boot 1.x 和 2.x 的 Actuator模块设置有差别,访问功能的路径也有差别,但现在多使用的Spring Boot版本为2.x### 2.Actuator存在两个版本#### 1)x版本/configprops#显示所有@ConfigurationProperties/env#公开Spring的ConfigurableEnvironment/health#显示应用程序运行状况信息/httptrace#显示HTTP跟踪信息/metrics#显示当前应用程序的监控指标信息/mappings#显示所有@RequestMapping路径的整理列表/threaddump#线程转储/heapdump#堆转储/jolokia#JMX-HTTP桥,它提供了一种访问JMXbeans的替代方法#### 2)x版本/actuator/configprops # 显示所有@ConfigurationProperties/actuator/env # 公开Spring的ConfigurableEnvironment/actuator/health # 显示应用程序运行状况信息/actuator/httptrace # 显示HTTP跟踪信息/actuator/metrics # 显示当前应用程序的监控指标信息。/actuator/mappings # 显示所有@RequestMapping路径的整理列表/actuator/threaddump # 线程转储/actuator/heapdump#堆转储/actuator/jolokia#JMX-HTTP桥,它提供了一种访问JMXbeans的替代方法### 3. /actuator/env利用
相关推荐
回家路上绕了弯1 分钟前
当 AI 成为队友:团队协作使用 AI 的实践与思考陈随易4 分钟前
副业搞钱点子之独立开发MetaLite14 分钟前
Spring Boot 加了 @Valid,嵌套参数为什么还没校验?半杯咖啡半行码15 分钟前
QML与 Qt Quick入门实战:从零基础到 C++ 双向通信详解霸道流氓气质21 分钟前
Lingua 语言检测库:n-gram 统计模型、置信度阈值调优与 Spring Boot 分层检测管道的生产级实战文丑颜不良啊32 分钟前
LeetCode1281~1300题目解析missile11135 分钟前
# HDR 算法 ISP 通路客制化方案(G100 / mt6789)geovindu1 小时前
rust: Read-Write Lock Pattern怪我冷i1 小时前
Rust智能指针Rc<T> 使用总结全栈陈序员1 小时前
【Python】基础语法入门(三十三)—— 日志系统详解:用 logging 记录程序运行
该端点可以返回全部环境变量以及一些配置信息,其中就包含了数据库配置信息。但是我们可以看到password被用*代替了,这时就要想办法读取该数据了,获取明文密码办法有以下四种。#### 方法一(heapdump)利用条件:可正常GET请求目标/heapdump或/actuator/heapdump接口利用方法: (1)下载heapdump127.0.0.1:8088/actuator/heapdump 下载heapdump文件,泄露JAVA堆dump信息:
(2)heapdump文件解密
查询密码 > password获取ip > getip获取url > geturl获取文件路径 > getfile#### 方法二(jolokia)利用条件:目标网站存在/jolokia或/actuator/jolokia接口目标使用了jolokia-core依赖(版本要求暂未知)默认情况下actuator是没有jolokia接口的,所以需要再添加如下依赖 org.jolokia jolokia-core 1.7.0 利用方法:1. 首先访问/actuator/env接口,获取想要获得明文的属性名,然后通过jolokia调用相关Mbean获取明文。2. 然后访问
接下来就可以通过调用我们找到的MBean来获取我们感兴趣字段的明文了。如果是1.x版本请求路径则为/jolokia当前环境测试如下:
POST/actuator/jolokia Content-Type:application/json {"mbean":"org.springframework.boot:name=SpringApplication,type=Admin","operation":"getProperty","type":"EXEC","arguments":
移除了当前项目中的servlet依赖后报错消失。
还有一个问题就是如果使用的Spring Boot版本大于2.2.4,则必须使用下面的属性手动启用POST API调用management.endpoint.env.post.enabled=true否则不能通过POST访问env端点。利用方法 1. 首先访问