Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信从而导致信息泄露甚至服务器被接管的事件发生.
Actuator
Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块。其提供的执行器端点分为两类:原生端点和用户自定义扩展端点,原生端点主要有:
/dump - 显示线程转储(包括堆栈跟踪)
/autoconfig -显示自动配置报告/configprops-显示配置属性
/trace -显示最后几条HTTP消息(可能包含会话标识符)/logfile - 输出日志文件的内容
/shutdown -关闭应用程序/info - 显示应用信息
/metrics -显示当前应用的'指标"信息/health - 显示应用程序的健康指标/beans -显示Spring Beans的完整列表
/mappings-显示所有MVC控制器映射
/env -提供对配置环境的访问/restart-重新启动应用程序
漏洞复现
步骤一:使用以下Fofa语句搜索资产并打开页面访问
icon_hash="116323821"
步骤二:当 web 应用程序出现 4xx、5xx 错误时显示类似以下页面就能确定当前 web 应用是使用了springboot 框架....
步骤三:拼接以下路径查看泄露的数据.
1.访问/trace端点获取基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等),如果存在登录用户 的操作请求,可以伪造cookie进行登录。
2.访问/env端点获取全部环境属性,由于actuator 会监控站点 mysql、mangodb 之类的数据库服务,所以通过监控信息有时可以mysql、mangodb 数据库信息,如果数据库正好开放在公网,那么造成的危害是巨大的。
3git项目地址泄露,这个一般是在/health 路径,比如如下站点,访问其 health 路径可探测到站点 git 项目地址。
漏洞修复
1.禁用/env接口。
2.升级到Springboot actuator 2.0。
3.禁止对外开放。