SpringbootActuator未授权访问漏洞

漏洞介绍

Actuator 是 SpringBoot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。然而,其默认配置会出现接口未授权访问,导致部分接口会泄露网站数据库连接信息等配置信息,使用Jolokia库特性甚至可以远程执行任意代码,获取服务器权限。

1、漏洞危害

1、信息泄露:未授权的访问者可以通过Actuator端点获取敏感信息,如应用程序的配置信息、运行时环境、日志内容等。这些信息可以被攻击者用于识别系统的弱点,并进行更深入的攻击。

2、系统破坏:攻击者可以通过Actuator端点的未授权访问,执行恶意操作,如修改配置、篡改数据、重启应用程序、关闭数据库连接等,从而破坏应用程序的正常运行。

3、命令执行:当系统使用Jolokia库特性甚至可以远程执行任意代码,获取服务器权限。

3 端点描述:

2、端点描述

官方文档对每个端点的功能进行了描述。

路径 描述

路径

描述

漏洞利用点

/autoconfig

提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过

/beans

描述应用程序上下文里全部的Bean,以及它们的关系

/env

获取全部环境属性

/configprops

描述配置属性(包含默认值)如何注入Bean

/dump

获取线程活动的快照

/health

报告应用程序的健康指标,这些值由HealthIndicator的实现类提供

/info

获取应用程序的定制信息,这些信息由info打头的属性提供

/mappings

描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系

/metrics

报告各种应用程序度量信息,比如内存用量和HTTP请求计数

/shutdown

关闭应用程序,要求endpoints.shutdown.enabled设置为true

/trace

提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

访问/trace端点获取到近期服务器收到的请求信息。如果存在登录用户的操作请求,可以伪造cookie进行登录

3 检测

可以使用https://github.com/AabyssZG/SpringBoot-Scan工具,一把扫出所有的未授权路径

4修复

https://www.cnblogs.com/wsx2019/p/17453170.html

参考:
https://blog.youkuaiyun.com/weixin_44106034/article/details/133934404
https://huaweicloud.youkuaiyun.com/63874f0cdacf622b8df8aa9f.html
SpringBoot 未授权访问漏洞挖掘

浅析SpringBoot框架常见未授权访问漏洞

### Spring Boot Actuator未授权访问漏洞修复 #### 配置认证机制 为了防止Spring Boot Actuator未授权访问,可以在项目中加入`spring-boot-starter-security`依赖来启用基本的身份验证。这可以通过修改`pom.xml`文件实现: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 接着,在`application.properties`或`application.yml`配置文件里设置安全选项以及定义用户名和密码[^1]。 对于properties格式: ```properties management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always spring.security.user.name=admin spring.security.user.password=admin ``` YAML格式则如下所示: ```yaml management: endpoints: web: exposure: include: '*' endpoint: health: show-details: always spring: security: user: name: admin password: admin ``` 上述配置不仅启用了安全性还开放了所有的actuator端点供监控使用,并允许健康状态页面显示更多细节信息。 #### 屏蔽所有敏感接口 当无法简单地关闭特定管理端口时,另一种策略就是完全阻止对外部网络暴露任何Actuator提供的API路径。此操作可通过调整应用程序属性完成,具体做法是在配置文件内指定哪些端点应该被隐藏起来不对外开放[^2]。 例如只保留health检查而禁用其他一切可能带来风险的操作: ```properties management.endpoints.web.exposure.include=health ``` 或者采用更严格的控制措施——仅限于本地回环地址(`localhost`)可以访问这些受保护资源: ```properties management.endpoints.web.exposure.include=* management.server.address=localhost ``` 以上两种方法均能有效提升系统的整体防护水平并减少潜在的安全隐患。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值