打内网遇到悟空CRM


拿到数据库权限,想进系统,发现密码有盐

爆破出来一个用户的密码,把其他账户的 password 和 salt 替换成这个用户的也登录不进去,提示密码错误

然后网上搜文章,发现了这篇文章:https://www.zabbx.cn/archives/悟空crm密码忘记的解决办法

然后了解密码的 hash 生成是需要绑定用户名的,每个用户的 hash 都是唯一的,这就解释了替换其他用户的 password 和 salt 为什么不行

他给了一段密码hash生成代码,运行发现没有 user_md5 函数


然后我去悟空CRM源码里把函数实现也放了进来,仅此而已(站在巨人的肩膀)

<?php
  function user_md5($str, $auth_key = '', $username = '')
{
  return '' === $str ? '' : md5(sha1($str) . md5($str . $auth_key));
}
$username = "13333333333";
$password = 'Aa123456';
$salt = substr(md5(time()),0,4);
echo 'salt: ',$salt;
$password = user_md5(trim($password), $salt, $username);
echo '<br/>password: ',$password;
?>

效果:


最后也是成功登录了系统