SpringBoot Actuator未授权访问漏洞修复详解
作者:llsydn 发布时间:2022-03-30 16:43:28
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
漏洞问题!!!
来源:https://juejin.cn/post/7135671896468619278


猜你喜欢
- 前言本文主要给大家介绍了Android中图片DrawableCompat利用setTint()对图片Drawable进行变色的相关内容,分享
- 下面一段内容有项目需求有项目分析,通过一个小demo给大家展示下C#如何对多线程、多任务管理的。项目需求:假设多个任务需要执行,每个任务不是
- 为了打造流畅的用户导航体验,我们不得不依赖智能手机最常见的一个功能:触摸。触摸改变应用程序的视图是现在最流行一种导航设计。在本文中,我们将经
- 题目要求阅读理解读完题的我be like:去看了遍英文版就懂了,题目中的种类【type】不是种类数…&hell
- 一、在pom.xml中配置jetty插件: <build> <plugins> <p
- 冒泡排序算法演示图:public static void bubbleSort(int[] array) { &
- bootstrap和application的区别说明bootstrap和application都是SpringBoot项目中的配置文件,他们
- FTP简介文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模
- 目录前言一、Apache poi1.1 首先添加依赖1.2 导出excel1.2.1 HSSF方式导出(.xls方式)1.2.2 XSSF方
- java 集合之Stack概要:Stack是栈,特性是先进后出(FILO,First In Last Out)。Stack是继承
- 之前在Retrofit源码初探一文中我们提出了三个问题:什么时候开始将注解中参数拼装成http请求的信息的?如何产生发起http请求对象的?
- 目录1.C 语言包含的数据类型2.C语言的基本数据类型3.示例代码1.C 语言包含的数据类型如下图所示:2.C语言的基本数据类型short、
- 我就废话不多说了,大家还是直接看代码吧~ public List<FreightM> sortList(List&l
- 本文实例为大家分享了C语言实现中国象棋的具体代码,供大家参考,具体内容如下运行截图实现思路老套路,二维数组存储棋盘,宏定义各种棋子,每次棋子
- 本文实例为大家分享了Android实现房贷计算器的具体代码,供大家参考,具体内容如下fangdai(activity)package com
- ??是一个二元运算符,如果左操作数非空,则返回左操作数,否则返回右操作数,所以,在一些特定的场合可以用它来代替?:运算符,简化代码书写。例1
- 概述早期的 Android 系统不完善,导致 App 侧有很多空子可以钻,因此它们有着有着各种各样的姿势进行保活。譬如说在 Android
- * 什么是 * Spring MVC中的 * (Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户
- 一 概述:最近一直致力于Android自定义VIew的学习,主要在看《android群英传》,还有CSDN博客鸿洋大神和wing
- 一、cancel()无效当协程任务被取消的时候,它的内部是会产生一个 CancellationException 的。而协程的结构化并发,最