Spring Boot Actuator 未授权访问远程代码执行

1.漏洞描述

Actuator是Spring Boot提供的服务监控和管理中间件,默认配置会出现接口未授权访问,部分接口会泄露网站流量信息和内存信息等,使用Jolokia库特性甚至可以远程执行任意代码,获取服务器权限。

2.识别springboot

2.1 报错页面

2.2 icon识别

springboot 站点默认icon图标为小叶子,如下图:

3.利用方式

3.1 未授权路径

1.x版本直接访问 例如:http://192.168.1.1/env

2.x版本是在/actuator/目录下,例如http://192.168.1.1/actuator/env

3.2 漏洞复现

3.2.1 通过访问/actuator/heapdump,直接下载heapdump文件

3.2.2 Heapdump,即堆转储文件,是一个Java进程在某个时间点上的内存快照。HeapDump记录了JVM中堆内存运行的情况,保存了Java对象、类以及线程栈以及本地变量等信息,最重要的是里面可能存有数据库密码信息。

因为heapdump_tool工具需要使用jhat,新版的java中已经移除,我这里用的是JDumpSpider

java -jar .\JDumpSpider-1.0-SNAPSHOT-full.jar .\heapdump

HeapDump敏感信息提取工具1:GitHub - whwlsfb/JDumpSpider: HeapDump敏感信息提取工具https://github.com/whwlsfb/JDumpSpider

HeapDump敏感信息提取工具2:GitHub - wyzxxz/heapdump_tool: heapdump敏感信息查询工具,例如查找 spring heapdump中的密码明文,AK,SK等https://github.com/wyzxxz/heapdump_tool

 

3.2.3 通过对转储文件进行提取,检索password关键词,发现Redis登录方式

3.2.4 使用RESP.app成功登录至Redis数据库中

4.修复建议

4.1 禁用所有接口,将配置改成:
endpoints.enabled = false

4.2 引入spring-boot-starter-security依赖:
org.springframework.boot
spring-boot-starter-security

开启security功能,配置访问权限验证,类似配置如下:
management.port=8099
management.security.enabled=true
security.user.name=xxxxx
security.user.password=xxxxxx

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot 是一个用于创建和部署基于 Spring 框架的应用程序的开源框架。以下是 Spring Boot 的主要特点: 1. 简化配置Spring Boot 自动配置了很多常见的应用程序配置,避免了繁琐的手动配置。开发者可以通过配置文件或注解快速地配置应用程序。 2. 快速开发:Spring Boot 提供了许多快速开发的工具和插件,如 Spring Boot CLI 和 Spring Boot Starter 等,可以快速地创建和启动应用程序。 3. 内嵌服务器:Spring Boot 提供了内置的 Tomcat、Jetty 等 Web 服务器,方便开发者快速启动和测试应用程序。 4. 统一依赖管理Spring Boot 可以自动管理应用程序的依赖,避免了版本冲突和依赖混乱的问题。 5. 微服务支持:Spring Boot 可以方便地创建和部署微服务应用程序,支持多种微服务框架,如 Spring Cloud。 6. 监控管理Spring Boot 提供了丰富的监控管理功能,可以方便地监控管理应用程序的运行状况。 总之,Spring Boot 简化了应用程序的开发和部署,提高了开发效率和代码质量,适合于构建各种类型的应用程序。 ### 回答2: Spring Boot是一个基于Spring框架的快速开发框架,具有以下特点: 1. 简化配置Spring Boot通过自动配置的方式,大大减少了开发者的配置工作量。它能根据项目的依赖自动配置相关的Bean,减少了手动配置的繁琐过程。 2. 内嵌服务器:Spring Boot内嵌了常见的服务器,如Tomcat、Jetty等,无需额外部署,只需添加合适的依赖即可快速运行项目。这大大降低了部署和运行的复杂性。 3. 微服务支持:Spring Boot天然支持微服务架构。通过Spring Cloud的支持,可以快速开发微服务应用,并且可以方便地构建、部署和管理服务。 4. 自动配置和起步依赖:Spring Boot提供了大量的起步依赖,包含了常见的场景和技术,例如Web开发、数据访问安全、缓存等。只需添加相应的起步依赖,就能快速集成相关功能,简化了项目的配置和集成过程。 5. 简化开发:Spring Boot提供了许多便利的特性,如自动装配、自动扫描、热部署等,极大地提高了开发效率和开发体验。 6. 提供丰富的监控管理Spring Boot提供了丰富的监控管理功能,可用于监控应用的健康状态、性能指标、日志输出等。而且还可以通过Actuator等组件进行应用的管理远程调试。 7. 大量的社区支持:Spring Boot是一个非常活跃的开源项目,拥有庞大的开发者社区。这意味着有大量的开源库和组件可供选择,并且能够得到及时的技术支持和更新。 总的来说,Spring Boot具有简化开发、快速上手、微服务支持、丰富的生态系统等特点,使得开发者能够更加专注于业务逻辑的开发,而不需要过多关注底层的配置和集成细节。 ### 回答3: Spring Boot 是一个开源的框架,具有以下几个特点: 1. 简化配置Spring Boot提供了自动配置的能力,大大减少了开发者的配置工作。它根据约定大于配置的原则,提供了许多默认配置,开发者只需要根据自己的需求对其进行微调即可。 2. 内置容器:Spring Boot内置了Tomcat、Jetty等常用的Web容器,开发者不再需要手动配置和部署Web容器,可以直接运行Spring Boot应用。 3. 简化依赖管理Spring Boot使用了Maven或Gradle来管理项目依赖,开发者只需要在配置文件中声明需要的依赖,并指定相应的版本号,就可以自动下载和管理依赖。 4. 健康检查和监控Spring Boot提供了丰富的健康检查和监控功能,可以帮助开发者实时了解应用的运行状态,快速定位和解决问题。 5. 强大的开发工具支持:Spring Boot与众多IDE集成,例如IntelliJ IDEA、Eclipse等,提供了一系列开发工具和插件,可以快速创建、调试和测试Spring Boot应用。 6. 生态系统丰富:Spring BootSpring家族的一员,可以无缝集成Spring框架的各种模块和扩展,同时也可以与第三方框架、中间件等进行集成,拓展功能。 总之,Spring Boot通过简化开发和配置过程,提供了一种快速构建、轻量级和可扩展的微服务应用的方式。它的特点主要包括简化配置、内置容器、简化依赖管理、健康检查和监控、强大的开发工具支持和丰富的生态系统。这些特点使得Spring Boot在进行快速开发和部署微服务应用时,具有很大的优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值