我从一位无法联系的前任管理员那里继承了 PhpBB3 安装,他没有给我留下密码,也没有留下任何找回密码的机制。
它运行在 MySQL 数据库上,我以完全权限登录该数据库以更改管理员密码。不幸的是,PhpBB3 显然使用了一种我不熟悉的复杂多级加盐哈希技术。如果拥有对数据库的完全访问权限,我如何生成有效的密码哈希来替换旧密码?
我尝试对普通用户的已知密码进行简单的 MD5 计算,但它与 DB 条目不匹配。
只要有效,任何其他通过数据库重置管理员密码的方法也是有帮助的!
答案1
运行mysql并选择相关的数据库然后使用MD5函数在您想要更改的帐户上设置密码。
例如,如果你的 phpbb3 数据库名为 Yourphpbb3db,用户表名为 phpbb_users,那么
mysql -u root -p
输入你的密码
mysql> show databases;
mysql> use database Yourphpbb3db;
Database changed
mysql> UPDATE phpbb_users SET user_password = MD5('YourPassword') WHERE username='YourAdminName';
答案2
在其他地方找到的答案(来源:joshhighland.com)
手动运行更新,但使用以下示例哈希之一;
哈希:e10adc3949ba59abbe56e057f20f883e 密码:123456
哈希:$H$9Ae3Uk.ECdWW5ya13M4ErWhr4c.761/ 密码:password
例如 mysql> update phpbb_users set user_password='e10adc3949ba59abbe56e057f20f883e' 其中 username = 'YourUserName';
...然后登录并将密码更改为您以后会记住的密码:)
答案3
我对 phpBB3 的复杂性了解不多,但我会尝试从另一个知道密码的用户帐户(为此目的而设的临时帐户或类似帐户)复制哈希和盐。当然,首先备份当前哈希和盐,或者可能是整个数据库……如果这不起作用,我会尝试提升另一个帐户的权限。我对 phpBB3 中的权限系统完全不熟悉,但您可以尝试为新帐户复制当前管理员的权限表条目,或者只是用已知帐户替换管理员的用户 ID。如果可能的话,我会在测试系统上完成所有这些操作。