SpringBoot Actuator未授权访问漏洞修复详解

作者:llsydn 时间:2022-03-30 16:43:28 

1.写在前面

目前SpringBoot得框架,越来越广泛,大多数中小型企业,在开发新项目得时候。后端语言使用java得情况下,首选都会使用到SpringBoot。

在很多得一些开源得框架中,例如: ruoyi若以,这些。

不知道是出于什么原因?我们都会在这些框架中得pom文件中找到SpringBoot Actuator的依赖。

嘿,这Actuator估计很多人都没有真真实实使用过,但是就会出现在pom文件中;这样导致,在做一些安全漏洞测试的时候,会出现漏洞问题。

例如下面:

SpringBoot Actuator未授权访问漏洞修复详解

对于这些漏洞,我们开始修复喽!!!

2.问题描述

Actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。

Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的Endpoints。

每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进行暴露,大部分应用选择HTTP。

好了,Actuator看起来还是挺好的,可以用来监控。不过大部分企业,估计都没咋用过,也就享受不到Actuator的好处了。

Actuator在带来方便的同时,如果没有管理好,会导致一些敏感的信息泄露;可能会导致我们的服务器,被暴露到外网,服务器可能会沦陷。那我们来看一下,会出现什么安全的问题?

3.安全问题

例如,我们可以访问:

http://localhost:7200/actuator/env

SpringBoot Actuator未授权访问漏洞修复详解

看到上面的信息了吗?哇,我们居然能看到数据库连接地址,账号密码等信息。

这些地址如果不加以控制,对于一些有技术基础的人员来说,这不得是一个很严重的漏洞?估计是t0级别的漏洞了。

对于这些,我们要如何进行控制呢?

4.禁止方法

在 llsydn-dev.properties 增加配置如下

management.endpoints.web.exposure.exclude=env,heapdump,threaddump,mappings

这样 env 就被禁止访问了。

然后我们再来访问一下比如:

SpringBoot Actuator未授权访问漏洞修复详解

好了,可以看到访问就出现404了,表示已经禁了。

5.完全禁用Actuator

对于上面的修改,其实已经可以实现禁止了env的方法,也就基本上都能控制到相应的接口信息,基本上也能做到了安全。

但是在做等保安全漏洞扫描的时候,还是会扫出来响应的漏洞,那其实,还是没有解决掉这个漏洞。那我们能不能完全禁止Actuator呢?

答案,肯定是可以的!!!

例如下面这个配置:

# 完全禁用actuator
management.server.port=-1

这样配,等保做安全漏洞扫描,就不会扫描出该漏洞了!!!

嘿,再也不用担心Actuator漏洞问题!!!

来源:https://juejin.cn/post/7135671896468619278

标签:SpringBoot,Actuator,漏洞修复,未授权访问
0
投稿

猜你喜欢

  • c# 用Base64实现文件上传

    2023-12-20 00:52:11
  • Unity使用物理引擎实现多旋翼无人机的模拟飞行

    2021-09-25 04:11:40
  • Android四种数据存储的应用方式

    2023-07-25 05:01:06
  • 详解Java异常处理中finally子句的运用

    2023-11-29 10:10:30
  • C#调用微信接口的相关代码

    2022-01-23 03:01:02
  • Java SoftReference类案例详解

    2023-04-07 06:52:29
  • SpringMVC Restful api接口实现的代码

    2023-11-29 12:34:27
  • Android实现底部滚轮式选择弹跳框

    2022-02-05 15:13:09
  • AndroidStudio4.0 New Class的坑(小结)

    2022-07-29 15:06:48
  • C#验证码识别基础方法实例分析

    2021-11-19 00:24:13
  • C++实现leetcode(3.最长无重复字符的子串)

    2023-06-25 03:17:22
  • Java实现抠图片文字或签名的完整代码

    2023-04-18 00:04:44
  • java实现手写一个简单版的线程池

    2022-09-29 04:59:32
  • Android开发Compose集成高德地图实例

    2022-09-05 01:44:28
  • C#冒泡法排序算法实例分析

    2023-08-13 18:03:42
  • C#中类的异常处理详解

    2023-02-21 17:25:01
  • java增强for循环的实现方法

    2023-12-07 16:42:53
  • 浅谈SpringMVC HandlerInterceptor诡异问题排查

    2023-07-24 05:34:06
  • java8到java15的新功能简介

    2023-07-28 02:18:18
  • Android中选项菜单(OptionMenu)的创建方法

    2021-06-08 14:14:42
  • asp之家 软件编程 m.aspxhome.com