Spring boot未授权访问造成的数据库外联
一、spring boot
日常测试或攻防演练中像shiro,fastjson等漏洞已经越来越少了,但是随着spring boot框架的广泛使用,spring boot带来的安全问题也越来越多,本文仅介绍未授权现在heapdump获取数据库口令,达到连接数据库的目的。其他spring boot安全漏洞请参考https://xz.aliyun.com/t/7811
Heap Dump也叫堆转储文件,是一个Java进程在某个时间点上的内存快照。Heap Dump是有着多种类型的。不过总体上heap dump在触发快照的时候都保存了java对象和类的信息。通常在写heap dump文件前会触发一次FullGC,所以heap dump文件中保存的是FullGC后留下的对象信息。具体参考:https://blog.csdn.net/hehmxy/article/details/89114116
二、未授权访问
spring boot未授权访问产生的安全问题还是比较严重的,env泄露等问题甚至可造成RCE。
在某次测试过程中扫描目录发现heapdump文件可下载,通过mat工具对heapdump文件进行分析,可获取内存中保存的敏感信息。

三、相关工具及语法
Eclipse Memory Analyzer是一种快速且功能丰富的Java堆分析器,可进行查找内存泄漏并减少内存消耗。
下载链接如下:https://www.eclipse.org/mat/
四、OQL
OQL是用于查询Java堆的类SQL查询语言。OQL允许过滤/选择从Java堆中获取的信息。虽然HAT已经支持预定义的查询,例如“显示类X的所有实例”,但OQL增加了更多的灵活性。OQL基于JavaScript表达式语言。参考链接:https://blog.csdn.net/pange1991/article/details/82023771
五、分析heapdump
将heapdump文件拖入mat,mat对文件进行分析后,点击下图OQL查询敏感信息。

查询语句:select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))
点击红色叹号进行查询,即可查询password字段

查询结果如下

由此得知数据库口令,若服务端无外联限制情况下,即可进行数据库登录操作。
文章比较水,但这也是现在发现过得比较值得重视的问题,欢迎表哥们交流思路。
Spring boot未授权访问造成的数据库外联的更多相关文章
- Spring Boot Actuator未授权访问
当我们发现某一个网页的logo是一篇叶子或者报错信息如下图所示的话,就可以尝试Spring Boot Actuator未授权访问. /dump - 显示线程转储(包括堆栈跟踪) /autoconfig ...
- (数据库提权——Redis)Redis未授权访问漏洞总结
一.介绍 1.Redis数据库 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key- ...
- Springboot之actuator未授权访问
copy 子杰的哈,懒的写了 0x01 未授权访问可以理解为需要授权才可以访问的页面由于错误的配置等其他原因,导致其他用户可以直接访问,从而引发各种敏感信息泄露. 0x02 Spring Boot ...
- mongodb未授权访问漏洞
catalogue . mongodb安装 . 未授权访问漏洞 . 漏洞修复及加固 . 自动化检测点 1. mongodb安装 apt-get install mongodb 0x1: 创建数据库目录 ...
- Redis未授权访问漏洞分析
catalog . Redis简介 . 漏洞概述 . 漏洞利用方式 . 修复方式 1. Redis简介 Relevant Link: http://www.cnblogs.com/LittleHann ...
- Memcached未授权访问
概念 memcached是一个内存中的键值存储区,用于存储来自数据库调用.API调用或页面呈现结果的任意小数据块(字符串.对象).memcached简单但功能强大.其简单的设计促进了快速部署.易于开发 ...
- Spring Boot的数据访问:CrudRepository接口的使用
示例 使用CrudRepository接口访问数据 创建一个新的Maven项目,命名为crudrepositorytest.按照Maven项目的规范,在src/main/下新建一个名为resource ...
- Memcache未授权访问漏洞
Memcached 分布式缓存系统,默认的 11211 端口不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露. 0X00 Memcache安装 1. 下载Mencache的 ...
- Elasticsearch未授权访问漏洞
Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击. 0x00 Elasticsearch 安装 前提,保证安装了JDK 1. ...
随机推荐
- hdu4604 不错的子序列问题
题意: 给你一个栈,里面有n个数,和一个双头队列(空的),每次从栈里拿出一个数据,有三种选择,可以选择丢弃这个数字,也可以放到队头或者队尾,最后问你这个队列你面的最长连续非下降序列的长度. ...
- LA3403 天平难题
题意: 给出房间的宽度r和每个吊坠的重量wi,设计一个尽量宽但宽度不能超过房间宽度的天平,挂着所有挂坠,每个天平的一段要么挂这一个吊坠,要么挂着另一个天平,每个天平的总长度是1,细节我给出题 ...
- POJ2391 Floyd+离散化+二分+DINIC
题意: 有n个猪圈,每个猪圈里面都有一定数量的猪(可能大于当前猪圈的数量),每个猪圈都有自己的容量,猪圈与猪圈之间给出了距离,然后突然下雨了,问多久之后所有的猪都能进圈. 思路: ...
- TLS实现代码段加密
刚开始见到这个思路是看到周大师用这个东西做的免杀,当时感觉这个想法很好,但是由于当时对PE结构了解的少,看到二进制的东西就打怵,所以当时也没能成功的去实现这个思路,只是简单的记录了一下TLS的特性,直 ...
- Windows核心编程 第三章 内核对象
第3章内核对象 在介绍Windows API的时候,首先要讲述内核对象以及它们的句柄.本章将要介绍一些比较抽象的概念,在此并不讨论某个特定内核对象的特性,相反只是介绍适用于所有内核对象的特性. 首先介 ...
- java之Collection
java中的Collection可分为List.Set.Queue三种类型. 1.List. List会按照插入的顺序保存对象,较为常用的实现类有ArrayList,LinkedList和Vector ...
- tp 创建文件并写入数据
代码:1.$url = Env::get('root_path').'application/admin/test.txt'; //定义创建路径 $file = fopen($url,"w& ...
- PHP逐行解析文件,并写入数据库
$filePath为文件路径,上传文件则返回文件路径调用下面函数即可public function readText($filePath,&$errorCode,&$errorMess ...
- spring.framework 版本从4.1.6.RELEASE升到5.0.20.RELEASE
将org.springframework 使用到的jar 版本号改为5.0.20.RELEASE后运行会报错: Servlet.service() for servlet [springmvc] in ...
- mac Idea快捷键小记
重写父类方法:control + o 实现父类方法:control + i 最全的一个按键:control + 回车