问题描述

Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。




漏洞场景:


注:对于Spring 1x,它们在根URL下注册,并且在2x中它们移动到“/actuator/”基本路径。



例如:http://ip:port/actuator/env

以下Actuator端点可能具有安全隐患,从而导致可能的漏洞:

  1. /dump – 显示线程转储(包括堆栈跟踪)
  2. /trace – 显示最后几条HTTP消息(可能包含会话标识符)
  3. /logfile – 输出日志文件的内容
  4. /shutdown – 关闭应用程序
  5. /mappings – 显示所有MVC控制器映射
  6. /env – 提供对配置环境的访问
  7. /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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hurtseverywhere/article/details/123705526