如果有人在服务器上有物理访问权限,有人可以获得数据库的当前密码吗?

时间:2018-06-03 06:46:58

标签: sql-server security server phpmyadmin xampp

我有一个Web基础系统,我正在使用Xampp,我的数据库有一个密码,我通过phpMyAdmin访问它。

我有一些人在运行Web基础系统的同一台机器上工作,我们正在使用系统执行特定任务。

我担心的一件事是,他们是否可以获取或找到数据库的密码(这些不包括覆盖或重置密码)。

由于他们是物理访问服务器,是否可以获得或者说解密当前密码?如果是这样,有什么可能的方法?

我想要了解它,我想根据他们可以做的方法来提高系统的安全性。

3 个答案:

答案 0 :(得分:0)

当然有可能......

  • 我需要做的就是打开phpMyAdmin配置文件并查看数据库访问信息,因为它在那里未加密。基本上任何本身未加密的配置设置都是安全问题。

(一旦我有数据库访问权限,可能是系统管理员(sa)访问权限,我可以对系统中的用户和密码进行反向工程,只要有足够的时间,我也可以访问数据库中的盐)

其他情况(我不知道您的确切设置)将是:

  • 检查日志
  • 为任何不安全的数据库访问嗅探网络流量。假设您没有使用TLS
  • 由于我也可以对机器进行物理访问,因此我也可以破解操作系统用户和密码,甚至可以添加一个供我自己使用以供日后使用

简短的回答是,当人们可以访问物理机器时,攻击面会呈指数级增长。

答案 1 :(得分:0)

如果您担心系统(OS)密码,他们都会使用salt方法进行哈希处理。在这里阅读完整,解密时间太长。 https://en.wikipedia.org/wiki/Salt_(cryptography)

但如果它与phpMyAdmin有关,那与存储用户密码完全相关。您可能需要存储密码的哈希值,尽管phpMyAdmin管理员可以覆盖自己的哈希值并访问用户的数据。

答案 2 :(得分:0)

这里有几层安全保障。

我相信你的问题的正确答案是“不,这不是风险”,但彻底的答案将解决所有可能的曝光方式。

系统帐户

您的操作系统有用户帐户。这是您,其他用户和各种系统服务(例如MySQL服务器本身)对操作系统进行身份验证的方式。不共享用户帐户是一种很好的做法。这些密码以salted和hashed形式存储在服务器上,不可恢复或可逆(至少,为了讨论的目的)。这些信息几乎没有受到机器上其他用户攻击的危险。

MySQL用户帐户

MySQL拥有个人用户帐户。这些是个别MySQL用户对数据库服务器进行身份验证的方式,通常不应在用户,应用程序或服务之间共享。与系统帐户一样,这些密码以散列形式存储,使其相对安全,因此其他用户查看散列密码的风险也很小。

申请密码

这是一个困难的问题。许多应用程序在MySQL中的应用程序数据库中创建用户表。这非常简单;例如用户名和纯文本密码,或者可以非常精细和安全。诸如WordPress,Joomla,phpBB等应用程序以及几乎所有其他应用程序都实现了自己的应用程序级密码方法。这可以是适当的散列和安全的,也可以是纯文本的。在不知道申请细节的情况下,我们不能肯定地说。您可以通过查看数据库本身的密码字段获得一些提示,但如果密码被加密或使用弱算法进行哈希处理,则不会立即显而易见。因此,这可能是您应该关注的可能攻击向量。

这里另一个有趣的方面是网络嗅探;攻击者可以嗅探网络流量以确定用户的MySQL密码。一个简单的解决方法是仅为用户强制实施SSL加密通信以连接到MySQL服务器,和/或仅使用套接字连接方法。

我认为这里涵盖了相对较高的所有可能的攻击向量。我为了简化事情而采取了一些自由;例如,有一些较旧的操作系统使用弱化散列方法,这意味着这些散列不具有加密安全性,任何具有访问权限的用户都可能升级其权限(例如,对服务器具有物理访问权限的用户可以重新启动另一个可启动驱动器,重置根系统密码,安装他们希望的任何键盘记录器,并恢复。类似的警告将适用于没有物理访问权限但具有管理权限的用户。根据您的攻击媒介,这些方面可能会也可能不会引起关注你。