问题描述
Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。
漏洞场景:
注:对于Spring 1x,它们在根URL下注册,并且在2x中它们移动到“/actuator/”基本路径。
例如:http://ip:port/actuator/env
以下Actuator端点可能具有安全隐患,从而导致可能的漏洞:
- /dump – 显示线程转储(包括堆栈跟踪)
- /trace – 显示最后几条HTTP消息(可能包含会话标识符)
- /logfile – 输出日志文件的内容
- /shutdown – 关闭应用程序
- /mappings – 显示所有MVC控制器映射
- /env – 提供对配置环境的访问
- /restart – 重新启动应用程序
解决方案:
1:配置认证
在项目的pom.xml文件下引入spring-boot-starter-security依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
然后在application.properties中开启security功能,配置访问账号密码,重启应用即可弹出。
management.security.enabled=true
security.user.name=admin
security.user.password=admin
2.禁用接口
endpoints.enabled = false
禁用部分接口,如env:
endpoints.env.enabled = false
具体实例:
在yml文件中进行配置,配置如下:
management:
endpoints:
web:
exposure:
include: "*"
enabled-by-default: false
endpoint:
health:
show-details: always
版权声明:本文为hurtseverywhere原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。