【问题标题】:How to access website CMS with only access to database如何访问仅访问数据库的网站 CMS
【发布时间】:2012-10-12 15:33:50
【问题描述】:

我有一个使用“内部”cms 的网站,但我不知道登录详细信息。该平台本身没有“重置密码”功能。我确实可以访问 ftp 和 phmyadmin,并且找到了包含用户详细信息的 SQL 表,但密码当然是 MD5 加密。我尝试在 php my admin 中手动创建用户并填写以 MD5 加密的密码(为此使用了 md 在线服务),但它仍然无法正常工作。有人知道我可以使用的其他技巧吗?

【问题讨论】:

    标签: mysql login passwords md5 recover


    【解决方案1】:

    您可以为用户表中的现有用户 md5('your_pass') 但您确定密码是 md5 加密的吗?

    【讨论】:

    • 好吧,当我使用在线 md5 加密服务时,它会输出一个相似的字符串,并且长度与我在数据库中看到的相同。该表只有一个用户,我不知道原始密码。
    • 这就是为什么我说您可以尝试通过 phpmyadmin 重置该用户密码,首先将原始密码复制到文本文件中
    • 我尝试通过复制 Db 表中的第一个用户条目来创建另一个用户。那没有用。我认为林克斯是对的。 md5加密可以添加更多内容。不过我也会试试你的想法。
    • 是的,盐可能会被添加到密码中,我问你是否确定?查看代码将帮助您大部分盐都保存在配置文件中,您可以轻松检查其是否使用
    【解决方案2】:

    如果您有 FTP 访问权限,则可以查看应用程序源,并了解它们如何存储和检查密码。然后您可以看到它如何存储和验证密码并相应地更新数据库表。

    或者,您可以完全绕过身份验证。

    【讨论】:

    • 我也尝试绕过,但我无法理解来源。
    【解决方案3】:

    您需要查看 CMS 源。散列密码可能会涉及某种加盐/其他过程。快速浏览源代码将告诉您生成自己的密码所需知道的一切。猜测它未修饰的 MD5 是一个远射......

    【讨论】:

    • 我在 config.php 中找到了这个:define('SALT_LENGTH', 10); .但是不确定 SALT_LENGTH 的作用。
    • 运行find | xargs grep -s "SALT_LENGTH" 以查找哪些文件的哪些行使用该常量。这只是一个跟踪如何生成/验证密码的情况。
    • 无论如何要删除该 SALT_LENGTH 函数,以便我可以手动添加具有标准 MD5 加密密码的用户?我发现了这个: if ($row['password'] === $this->passwordHash($pass, substr($row['password'], 0, SALT_LENGTH))) { ... 然后它登录, 设置 cookie 等。
    • 您可以在登录并更改密码时将该行更改为 if(true) { 片刻...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2017-08-26
    相关资源
    最近更新 更多