MySQL接受任何密码

时间:2010-06-02 15:00:40

标签: mysql passwords

假设我有一组包含大量测试帐户的测试服务器。测试帐户具有未知密码,这些密码硬编码到应用程序的报告中,并以加密方式存储在mysql.users表中。

是否有任何选项或hack可用于使mysql接受任何文本作为帐户的“正确”密码?例如:

Update mysql.user Set Password="*" where 1=1

注意:上面的行不起作用,因为它会将密码设置为“*”而不是通配符。但是,我正在寻找一种方法来创建一个mysql帐户,它可以接受任何有效的密码。这台机器与网络断开连接,我可以完全访问mysql数据库......

3 个答案:

答案 0 :(得分:1)

不是。

你能做什么:

  • change the password到新的(SET PASSWORD FOR Piskvor='hunter2'; FLUSH PRIVILEGES;
  • 带有--skip-grant-tables选项的
  • restart the MySQL server。这将允许任何连接的任何密码访问任何数据库。警告:这是一个主要的安全漏洞 - 任何用户都可以修改mysql数据库,包括使用此选项运行服务器时的用户和密码。

(如果您拥有对数据库的完全访问权限,但不会更改现有密码和/或无法修改服务器进程选项,我会怀疑有什么可疑的事情发生了)

答案 1 :(得分:0)

我认为不存在这样的黑客行为。但是,如果密码在某处硬编码,则应该很容易提取密码并生成脚本。当然,除非存储密码的格式不可读。

答案 2 :(得分:0)

非常老的问题。但是今天我发现可以使用启动mysql服务上的--skip-grant-tables选项来完成它。

https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_skip-grant-tables

  

-skip-grant-tables导致服务器不读取mysql系统数据库中的授权表,因此无需使用   特权系统。这样任何人都可以访问服务器   不受限制地访问所有数据库。