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

 更新时间:2022年08月25日 14:41:57   作者:llsydn  
这篇文章主要介绍了SpringBoot Actuator未授权访问漏洞修复详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1.写在前面

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

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

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

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

例如下面:

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

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

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

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

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

4.禁止方法

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

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

这样 env 就被禁止访问了。

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

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

5.完全禁用Actuator

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

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

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

例如下面这个配置:

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

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

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

以上就是SpringBoot Actuator未授权访问漏洞修复详解的详细内容,更多关于SpringBoot Actuator 漏洞修复的资料请关注脚本之家其它相关文章!

相关文章

  • java -jar命令及SpringBoot通过java -jav启动项目的过程

    java -jar命令及SpringBoot通过java -jav启动项目的过程

    本篇文章将为大家讲述关于 SpringBoot 项目工程完成后,是如何通过 java-jar 命令来启动的,以及介绍 java-jar 命令的详细内容,对SpringBoot java -jav启动过程感兴趣的朋友跟随小编一起看看吧
    2023-05-05
  • SpringBoot AOP Redis实现延时双删功能实战

    SpringBoot AOP Redis实现延时双删功能实战

    本文主要介绍了SpringBoot AOP Redis实现延时双删功能实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 详解Java实现多线程的三种方式

    详解Java实现多线程的三种方式

    线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。本文总结了Java多线程是三种实现方式,需要的可以参考一下
    2022-03-03
  • 利用Spring Session和redis对Session进行共享详解

    利用Spring Session和redis对Session进行共享详解

    这篇文章主要给大家介绍了关于利用Spring、Session和redis对Session进行共享的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • Java设计模式之建造者模式

    Java设计模式之建造者模式

    这篇文章介绍了Java设计模式之建造者模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • SpringBoot静态资源CSS等修改后再运行无效的解决

    SpringBoot静态资源CSS等修改后再运行无效的解决

    这篇文章主要介绍了SpringBoot静态资源CSS等修改后再运行无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java对接第三方接口的3种常用方式

    java对接第三方接口的3种常用方式

    java语言中调用第三方接口,可以使用的方法有很多,下面这篇文章主要给大家介绍了关于java对接第三方接口的3种常用方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Java时间工具类Date的常用处理方法

    Java时间工具类Date的常用处理方法

    在Java中获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成。其中,Date 类主要封装了系统的日期和时间的信息,下面将详细介绍Date类的常用处理方法,需要的可以参考一下
    2022-05-05
  • IDEA中Maven爆红以及依赖下载失败的最全解决方案

    IDEA中Maven爆红以及依赖下载失败的最全解决方案

    这篇文章主要介绍了IDEA中Maven爆红,依赖下载失败的最全解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 在Intellij IDEA中使用Debug(图文教程)

    在Intellij IDEA中使用Debug(图文教程)

    下面小编就为大家带来一篇在Intellij IDEA中使用Debug(图文教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论