从 MySQL 用户表中转储的密码信息是否敏感?

信息安全 密码 mysql
2021-08-28 13:55:59

假设我已经转储 MySQL 用户列表使用

SELECT user, host, password, ssl_type FROM mysql.user;

结果如下所示:

+------------------+-----------+-------------------------------------------+----------+
| user             | host      | password                                  | ssl_type |
+------------------+-----------+-------------------------------------------+----------+
| admin            | %         | *blablablablablablablablablablablablablaa | ANY      |
+------------------+-----------+-------------------------------------------+----------+

这些信息是否应该被视为敏感信息?攻击者可以使用密码信息访问 MySQL 数据库吗?似乎密码是散列的,因此它不能直接使用,但也许它仍然可以以某种方式被利用,例如帮助为我的服务器创建彩虹表,或者类似的东西?

4个回答

是的,这是敏感信息。这是密码哈希泄漏。

攻击者会将此信息提供给暴力破解应用程序(有一些专为 MySQL 量身定制)并检索密码。

不仅如此,%主机字段意味着如果你的 MySQL 端口(默认为 3306)没有防火墙,攻击者可以admin从任何地方访问它。

考虑admin仅为锁定帐户localhost,并且永远不要透露密码哈希,无论您对破解此类哈希的难度有多大信心。

不仅密码本身本质上是敏感的(正如其他答案正确指出的主要风险)......而且它们包含的信息通常也是敏感的

一旦哈希值被破解,许多密码就会包含生日、孩子的名字、电话号码、安全问题的实际答案、街道地址……甚至是社会安全号码!

我们记住对我们重要的事情——以及对我们个人而言的事情。这使得密码具有出色的用户体验……但从安全角度来看,它们很糟糕。

这种密码选择心理应该被视为一种约束。由于许多用户以这种方式选择密码,因此应该对其进行相应的处理和保护。

可以使用密码破解工具(例如John the Ripperhashcat )从哈希中获取原始密码。这些工具只是在蛮力攻击中尝试大量密码。这可能需要很长时间,具体取决于密码的复杂性。

是的,它很敏感。攻击者可以尝试通过暴力破解或字典攻击来“破解”哈希。在所有情况下,我都看到 MySQL 密码是加盐的,但如果它们不是预先计算的哈希表或彩虹表,可以用来加速这个过程

此外,如果该哈希是通过 SQL 注入漏洞(极有可能)获得的,则攻击者可能会尝试在表中插入或更新数据,具体取决于查询的进行方式。如果这是可能的,攻击者可以简单地添加一个新用户或使用已知密码的哈希更改管理员密码哈希,完全跳过破解步骤