2010-06-02 74 views
3

假设我有一个包含大量测试帐户的测试服务器。测试帐户有未知的密码,这些密码被硬编码到应用程序的报告中,并被存储在mysql.users表中。MySQL接受任何密码

是否有任何选项或黑客可以用来让MySQL接受任何文本作为帐户的“正确”密码?例如:

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

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

回答

0

不是。

你可以做什么:

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

(如果你有完全访问数据库,但不会改变现有的密码和/或不能修改服务器的过程中选择,我会怀疑有鬼是怎么回事)

0

我不认为有这样的破解。但是,如果密码在某处被硬编码,应该很容易提取它们并生成脚本。当然,如果存储密码的格式不可读。

+0

硬编码密码存储在用于保存报告的二进制格式内(想想像Word 2003这样的二进制非XML格式,但是专有的) – George 2010-06-02 15:47:35