获取所有失败的 MySQL 登录的密码

获取所有失败的 MySQL 登录的密码

我在尝试找出 SQL 登录失败的原因时遇到了问题。密码对我来说似乎是正确的,但它仍然不起作用。我想看看用户登录尝试登录 MySQL 时到底发送了什么。当我说用户登录时,我指的是实际的 SQL 用户,而不是任何表。

举例来说,如果我尝试使用 root:wrongpassword 登录 MySQL,我希望在日志中的某处看到这个错误密码。

我尝试查看日志,发现 sql 将所有日志信息写入正在运行的任何应用程序的日志中。例如,如果是 php,它会显示在 apache 中,如果是 postfix,它会显示在 maillog 中。

我遇到了这样的错误,但这还不足以让我调试出错误。我不知道发送了什么。

连接数据库失败(postfix):拒绝用户“root”@“localhost”访问(使用密码:是)

答案1

幸运的是,你不能这样做,因为现在没有像样的应用程序通过网络传输纯文本密码;)即使你设法以某种方式打印登录数据,你看到的也是密码的哈希值,而不是密码本身。

您可以尝试使用 tcpdump 嗅探端口 3306,然后从那里提取登录信息(前提是它不是 SSL/TLS 连接,在这种情况下您就没那么幸运了)。同样,您得到的不是明文密码。

解决您的问题的另一种可能方法是使用 mysql 代理并以某种方式操纵登录过程。例如:

https://github.com/cwarden/mysql-proxy/blob/master/examples/tutorial-scramble.lua

相关内容