在没有凭证知识的情况下访问未加密的 H2 数据库

Posted

技术标签:

【中文标题】在没有凭证知识的情况下访问未加密的 H2 数据库【英文标题】:Accessing unencrypted H2 database without credential knowledge 【发布时间】:2014-11-06 10:01:19 【问题描述】:

我们正在为客户清理服务器,偶然发现了一个使用 H2 数据库的旧应用程序。虽然访问应用程序的配置文件中有凭据,但它们似乎都不起作用。

甚至“sa”用户的访问权限也是未知的。据我所知,“sa”的密码默认为空字符串,但使用“sa”/“”的访问被拒绝(错误的用户名或密码 [28000-182] 28000/28000(帮助))。

如前所述,数据库未加密。查看文件,我可以看到表的 SQL 语句,甚至可以看到一些表内容。

有什么方法可以访问该数据库?据我的搜索显示,只能使用“sa”用户。我正在从 mysql 中寻找类似于“--skip-grant-tables”的东西。

【问题讨论】:

【参考方案1】:

最简单的解决方案可能是:

    尝试不使用密码登录数据库。这将失败(用户名或密码错误),但它会运行事务日志恢复,以便数据库处于一致状态。 然后,使用恢复工具 (org.h2.tools.Recover) 生成 SQL 脚本。 编辑脚本:更改默认用户的密码。 运行脚本。这样你就得到了一个新的数据库。

【讨论】:

这听起来可行。谢谢你。将报告结果。

以上是关于在没有凭证知识的情况下访问未加密的 H2 数据库的主要内容,如果未能解决你的问题,请参考以下文章

AWS 数据加密知识点

如何在 PHP 中没有硬编码密钥的情况下进行对称加密

未加载 Spring Boot 测试 H2 sql 脚本

20191331 《信息安全专业导论》第12周学习总结

AWS RDS启用数据加密(创建时未启用情况下)

如何在没有 PG 服务器和 Web 控制台的情况下启动 H2 数据库命令行?