Spring Boot Actuator未授权访问漏洞

一、漏洞简介

开发人员没有意识到地址泄漏会导致安全隐患或者开发环境切换为线上生产环境时,相关人员没有更改配置文件。

二、攻击方式

将以下目录加入字典:

/actuator/auditevents
/actuator/beans
/actuator/health
/actuator/conditions
/actuator/configprops
/actuator/env
/actuator/info
/actuator/loggers
/actuator/heapdump
/actuator/threaddump
/actuator/metrics
/actuator/scheduledtasks
/actuator/httptrace
/actuator/mappings
/actuator/jolokia
/actuator/hystrix.stream

详细说明:

/env、/actuator/envGET 
#请求 /env 会直接泄露环境变量、内网地址、配置中的用户名等信息;当程序员的属性名命名不规范,例如 password 写成 psasword、pwd 时,会泄露密码明文;同时有一定概率可以通过 POST 请求 /env 接口设置一些属性,间接触发相关 RCE 漏洞;同时有概率获得星号遮掩的密码、密钥等重要隐私信息的明文。

./refresh、/actuator/refreshPOST 
#请求 /env 接口设置属性后,可同时配合 POST 请求 /refresh 接口刷新属性变量来触发相关 RCE 漏洞。

./restart、/actuator/restart
#暴露出此接口的情况较少;可以配合 POST请求 /env 接口设置属性后,再 POST 请求 /restart 接口重启应用来触发相关 RCE 漏洞。

./jolokia、/actuator/jolokia
#可以通过 /jolokia/list 接口寻找可以利用的 MBean,间接触发相关 RCE 漏洞、获得星号遮掩的重要隐私信息的明文等。

./trace、/actuator/httptrace
#一些 http 请求包访问跟踪信息,有可能在其中发现内网应用系统的一些请求信息详情;以及有效用户或管理员的 cookie、jwt token 等信息。
./actuator/heapdump 
#可以转储用来获取数据库密码

参考:springboot相关漏洞利用方式:

MemoryAnalyzer 分析spring boot heapdump提取数据库密码

fofa语法:

body="Whitelabel"

例如对/actuator/heapdump 下载的文件进行密码抓取可以下载https://www.eclipse.org/mat/downloads.php
使用 Eclipse Memory Analyzer 工具的 OQL 语句进行查询

查询语句:

select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains(“password”))

fd4fb9e180e9e17be54423ca35fba8d0.png

三、修复建议

在使用Actuator时,不正确的使用或者一些不经意的疏忽,就会造成严重的信息泄露等安全隐患。在代码审计时如果是springboot项目并且遇到actuator依赖,则有必要对安全依赖及配置进行复查。也可作为一条规则添加到黑盒扫描器中进一步把控。安全的做法是一定要引入security依赖,打开安全限制并进行身份验证。同时设置单独的Actuator管理端口并配置不对外网开放。