SpringBoot Actuator未授权访问漏洞修复详解
目录
- 1.写在前面
- 2.问题描述
- 3.安全问题
- 4.禁止方法
- 5.完全禁用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 漏洞修复的资料请关注我们其它相关文章!
相关推荐
-
解析springBoot-actuator项目构造中health端点工作原理
目录 前言 actuator功能和集成分离 actuator自动装载 健康检查指示器配置 健康检查端点配置 health健康检查实现 自定义健康检查指示器 health其他使用细节 文末结语 前言 最近在一个webflux项目中使用spring-boot-actuator提供的健康检查端点时出了点问题,故对spring-boot-actuator的项目构造,工作原理进行了全面的梳理,标题之所以写明health的工作原理,是因为spring-boot-actuator着实是个大工程,除了提供hea
-
SpringBoot Actuator潜在的OOM问题的解决
目录 背景&问题 问题原因及解决 默认埋点是如何生效的 http.client.requests 中的 uri 解决 会不会 OOM 此问题背景产生于近期需要上线的一个功能的埋点:主要表现就是在应用启动之后的一段时间内,内存使用一直呈现递增趋势. 下图为场景复线后,本地通过 jconsole 查看到的内部使用走势图. 实际环境受限于配置,内存不会膨胀 背景&问题 应用 a 使用 rest template 通过 http 方式调用 应用 b,应用项目中开启了 actuator,api 使用
-
SpringBoot2开启Actuator端点监控的方法
背景 SpringBoot本身提供了一套监控端点, 可以查看应用的基本信息. 健康程度. 配置等监控信息, 很容易上手. Note: 此处所用SpringBoot版本: 2.1.4 开启Actuator 在Maven的pom.xml文件中添加 spring-boot-starter-actuator 依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-
-
SpringBoot Actuator埋点和监控及简单使用
目录 1. 数据埋点 2. Micrometer 2.1 简单使用 2.2 命名规范 3. SpringBoot Actuator 3.1 添加依赖 3.2 基础配置 3.3 查看可消费的端点 3.4 获取应用的基本信息 3.5 健康指标 3.6 指标端点 metrics 4. 实例 4.1 测试接口 4.2 消费指标端点 5. SpringBoot Admin 5.1 Admin 服务器端 5.1.1 启用功能.添加依赖 5.1.2 选择一个端口 5.1.3 访问 5.2 Client 客户端
-
SpringBootAdmin+actuator实现服务监控
SpringBootAdmin可以监控SpringBoot单击或集群项目,提供详细的健康信息.内存信息.JVM系统和环境属性.垃圾回收信息.日志设置和查看.定时任务查看.SpringBoot缓存查看和管理功能. 第一步:监控服务端搭建 创建一个SpringBoot项目,添加下面依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st
-
SpringBoot配置actuator的代码
Actuator简介 监控分类 Actuator 提供Rest接口,展示监控信息. 接口分为三大类: 应用配置类:获取应用程序中加载的应用配置.环境变量.自动化配置报告等与SpringBoot应用相关的配置类信息. 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如:内存信息.线程池信息.HTTP请求统计等. 操作控制类:提供了对应用的关闭等操作类功能. 下面看下SpringBoot配置actuator的详细代码,内容如下所示: 引入jar包 <dependency> <grou
-
SpringBoot Actuator未授权访问漏洞修复详解
目录 1.写在前面 2.问题描述 3.安全问题 4.禁止方法 5.完全禁用Actuator 1.写在前面 目前SpringBoot得框架,越来越广泛,大多数中小型企业,在开发新项目得时候.后端语言使用java得情况下,首选都会使用到SpringBoot. 在很多得一些开源得框架中,例如: ruoyi若以,这些. 不知道是出于什么原因?我们都会在这些框架中得pom文件中找到SpringBoot Actuator的依赖. 嘿,这Actuator估计很多人都没有真真实实使用过,但是就会出现在pom文件
-
关于Redis未授权访问漏洞利用的介绍与修复建议
前言 本文主要给大家介绍了关于Redis未授权访问漏洞利用的相关内容,文中对该漏洞进行了详细,并给出了相对应的修复/安全建议,下面话不多说了,来一起看看详细的介绍吧. 一.漏洞介绍 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据.攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Re
-
解析Redis未授权访问漏洞复现与利用危害
目录 一.漏洞简介以及危害: 1.什么是redis未授权访问漏洞: 2.漏洞的危害 3.漏洞的影响 二.漏洞复现: 三.未授权访问漏洞测试 0x01 利用redis写webshell 0x02 利用"公私钥"认证获取root权限 0x03利用crontab反弹shell 四.Pyhton脚本自动化测试 五.解决方案 于2019.10.9日补充 redis主从复制rce 于2021.01.02补充 ssrf,redis与gopher 参考文章: 一.漏洞简介以及危害: 1.什么是redi
-
springboot Actuator的指标监控可视化功能详解
springboot为我们提供了丰富的指标监控功能SpringBoot Actuator SpringBoot Actuator是springboot为简化我们对微服务项目的监控功能抽取出来的模块,使得我们每个微服务快速引用即可获得生产界别的应用监控.审计等功能. 后序文章会更新使用 我们先来看看怎么可视化 我们可以通过github上的开源项目 这里 我们创建一个springboot项目 作为可视化的服务端 使用新功能首先都是引入依赖 需要web项目 <dependency> <grou
-
关于Redis未授权访问的问题
目录 漏洞原理 利用条件 漏洞危害 漏洞复现 搭建测试环境 攻击机Kali 2021.1 利用redis写入webshell 利用redis反弹shell 利用redis写入ssh公钥 总结 漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读
-
Redis未授权访问配合SSH key文件利用详解
前言 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis 未授权访问的问题是一直存在的问题,知道创宇安全研究团队历史上也做过相关的应急,今日,又出现 Redis 未授权访问配合 SSH key 文件被利用的情况,导致一大批 Redis 服务器被黑,今天我们来简要的分析下. 一.漏洞概述 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有
-
Zookeeper未授权访问测试问题
前言 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. zookeeper 未授权访问是指安装部署之后默认情况下不需要任何身份验证,从而导致 zookeeper 被远程利用,导致大量服务级别的信息泄露. 默认使用端口:2181.2182. 探测Zookeeper服务开放 如使用nmap探测某个目标
-
SpringBoot之HandlerInterceptor拦截器的使用详解
前言 平常项目开发过程中,会遇到登录拦截,权限校验,参数处理,防重复提交等问题,那拦截器就能帮我们统一处理这些问题. 一.实现方式 1.1 自定义拦截器 自定义拦截器,即拦截器的实现类,一般有两种自定义方式: 定义一个类,实现org.springframework.web.servlet.HandlerInterceptor接口. 定义一个类,继承已实现了HandlerInterceptor接口的类,例如org.springframework.web.servlet.handler.Handle
-
Springboot整合实现邮件发送的原理详解
目录 开发前准备 基础知识 进阶知识 加入依赖 配置邮件 测试邮件发送 通常在实际项目中,也有其他很多地方会用到邮件发送,比如通过邮件注册账户/找回密码,通过邮件发送订阅信息等等.SpringBoot集成邮件服务非常简单,通过简单的学习即可快速掌握邮件业务类的核心逻辑和企业邮件的日常服务 开发前准备 首先注册发件邮箱并设置客户端授权码,这里以QQ 免费邮箱为例,其他的邮箱的配置也大同小异. 登录 QQ 邮箱,点击设置->账户,开启IMAP/SMTP服务,并生成授权码. 基础知识 电子邮件需要在邮
-
SpringBoot 集成Kaptcha实现验证码功能实例详解
在一个web应用中验证码是一个常见的元素.不管是防止机器人还是爬虫都有一定的作用,我们是自己编写生产验证码的工具类,也可以使用一些比较方便的验证码工具.在网上收集一些资料之后,今天给大家介绍一下kaptcha的和springboot一起使用的简单例子. 准备工作: 1.你要有一个springboot的hello world的工程,并能正常运行. 2.导入kaptcha的maven: <!-- https://mvnrepository.com/artifact/com.github.penggl
随机推荐
- 非常实用的js验证框架实现源码 附原理方法
- 什么是ASP?如何打开ASP文件
- JSP在Linux下的安装
- Linux中文件权限目录权限的意义及权限对文件目录的意义
- ReactiveCocoa代码实践之-UI组件的RAC信号操作
- 激光彩色打印机维修常识常见问题及解决
- Asp.Net FckEditor在web.config中配置的具体实例
- asp.net FindControl方法误区和解析
- ASP.NET书籍信息录入实现代码
- Swift中的Access Control权限控制介绍
- Javascript 定时器调用传递参数的方法
- ASP常用的几个功能模块
- JSP的运行内幕
- mysql数据校验过程中的字符集问题处理
- js实现进度条的方法
- 详解nodejs微信公众号开发——3.封装消息响应模块
- Linux日志式文件系统面面观
- Linux UDP socket 设置为的非阻塞模式与阻塞模式区别
- jQuery实现的类似淘宝网站搜索框样式代码分享
- 轻松掌握JavaScript中的Math object数学对象