Spring Boot Actuator未授权访问漏洞利用
1. 漏洞描述
Actuator 是 Spring Boot 提供的服务监控和管理中间件。当 Spring Boot 应用程序运行时,它会自动将多个端点注册到路由进程中。而由于对这些端点的错误配置,就有可能导致一些系统信息泄露、XXE、甚至是 RCE 等安全问题。
2. 端点
官方文档对每个端点的功能进行了描述。
路径 描述
/autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
/beans 描述应用程序上下文里全部的Bean,以及它们的关系
/env 获取全部环境属性
/configprops 描述配置属性(包含默认值)如何注入Bean
/dump 获取线程活动的快照
/health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供
/info 获取应用程序的定制信息,这些信息由info打头的属性提供
/mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系
/metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
/shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true
/trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)
漏洞访问
/env,获取全部环境属性
漏洞利用
/heapdump 泄露JAVA堆dump信息,可以用dump分析工具进行查看
第一种工具
第二种工具
java自带的分析工具
java目录输入jvisualvm就可打开
jvisualvm
查询语句
select s.value.toString() from java.lang.String s where /pass/.test(s.value.toString())
select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())
总结
这个漏洞一般是未授权导致信息泄露,更进一步危害还需要找敏感信息,比如sql、redis等账号密码,不过一般都存在这些东西
ps:真实环境所以打码,干活时开发的说这不是洞,不修,结果只好继续通过/heapdump利用,找到数据库密码,连接、截图一气呵成