悟空CRM密码加密脚本

无关风月,我题序等你回


打内网遇到悟空CRM

Assassins小白

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

Assassins小白

爆破出来一个用户的密码,把其他账户的 passwordsalt 替换成这个用户的也登录不进去,提示密码错误,然后网上搜文章,发现了这篇文章:悟空CRM 密码忘记的解决办法! - 勤奋的冬枣 (zabbx.cn)

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

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

Assassins小白

然后我去悟空CRM源码里把函数实现也放了进来,仅此而已

1
2
3
4
5
6
7
8
9
10
11
12
<?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;
?>

效果:

Assassins小白

最后也是成功登录了系统

Assassins小白