Loading

使用 OpenSSL 解密 DBeaver 保存的数据库连接信息获取数据库连接密码

故事经历:

你是不是使用任何软件时都喜欢记住密码?

是的,我也喜欢。

但如果有一天你想把密码分享给其他人,而你又不记得密码是什么了,没错你可以去查看已保存的密码,

但是当你使用的是 DBeaver 时,不好意思,没有查看已保存的密码功能,这个时候不就尴尬了嘛。

那么现在你也许不再需要因此而烦恼了,因为我们可以解密 DBeaver 的连接信息,从而找到我们的密码了,嘿嘿,不用掉头发了。

也许你有点疑惑,放着UI好看,功能强大的 Navicat 不用,为啥用 DBeaver ?

那当然是因为某些不可启齿的原因,收到了 Navicat 的律师函。别笑,Navicat 也知道你在用的是什么版本,只不过他可能觉得你这只羊还不够“肥”,所以没准备“宰”,嘿嘿。

(支持正版,人人有责。能力有限,我用社区版 ^_^)

 

版本说明:

Windows 10

DBeaver:23.1.3.202307231901

OpenSSL:Win64OpenSSL-3_1_2

1、找到 DBeaver 保存的数据库的连接配置信息文件

通过以下方式可以快速找到路径:
打开 Sql 编辑窗口,鼠标右键菜单-首选项,可打开以下功能页面,其中 Location 即为当前 sql 脚本文件缓存目录

 

而配置信息保存文件在同一个 ~/General 目录下,我的配置文件在下面路径,供参考
C:\Users\HP\AppData\Roaming\DBeaverData\workspace6\General\.dbeaver

找到 credentials-config.json 文件,此文件即为 DBeaver 保存的数据库连接信息。接下就是需要解密这个文件了

 

2、安装 Open SSL

大家可以参考此篇博客:windows安装OpenSSL - 丁少华 - 博客园 (cnblogs.com),推荐使用其中的第二种方法。
 
可配置环境变量以方便使用命令行,我这里仅用来解密使用下,就不整了。

3、用 Open SSL 解密 DBeaver 连接信息

3.1 找到 Open SSL 安装目录,执行 start.bat

 

3.2 通过 OpenSSL 执行命令来解密文件

这里采用最简单粗暴的方式,将 DBeaver 保存的的数据库连接文件 credentials-config.json 文件直接复制到 OpenSLL 安装路径
在上一步打开的 命令行窗口输入以下命令即可解密:
具体参数大家可另行查阅, -out 指输出文件
openssl aes-128-cbc -d -K babb4a9f774ab853c96c2d653dfe544a -iv 00000000000000000000000000000000 -in credentials-config.json -out output.txt

执行命令后可得到 output.txt 的解密文件 output.txt

 

3.3 查找数据库密码

上一步我们已经成功解密了 DBeaver 的数据库连接文件,文件内容类似如下的Json字符串:
"postgres-jdbc-189d9b2d6d3-5a1d74d7bc78c73a":{"#connection":{"user":"postgres","password":"996997"}}
 
解密后的文件内并不能看到连接 ip ,因为无法判断是属于哪一台数据库服务器,但这里可以根据 user 去判断和寻找对应的数据库密码,数据库密码都已经是明文展示了,对于找回数据库连接密码也已经足够使用了。
 
 
由于我的配置文件不能外传,也没搞过Java,所以没有测试过这个项目是否可行,如果条件允许,大家可以 try 一下 ^_^
 
 
posted @ 2023-08-15 10:38  Pengxx  阅读(2518)  评论(0编辑  收藏  举报