导读:阿里云今天提示phpcms authkey生成算法问题导致authkey泄露这个漏洞,那如何修复呢?
看一下阿里爆出漏洞说明
漏洞名称:phpcms authkey生成算法问题导致authkey泄露
补丁编号:13453425
补丁文件:/www/xxxx/caches/configs/system.php
补丁来源:云盾自研
更新时间:2017-05-11 13:49:45
漏洞描述:phpcms在安装时,由于在同一个页面中连续使用mt_rand(),未进行有效mt_srand();种子随机化操作,导致authkey存在泄漏风险,黑客可利用该漏洞猜解出网站authkey进而入侵网站.【注意:该补丁修复后会自动修改您网站配置文件中的auth_key和phpsso_auth_key,并且只会运行一次,修复期间会有部分用户访问的cookies失效导致需要登录网站,除此无其他影响,可放心升级】
照着下面的函数重新生成一下key值,然后找caches/configs/system.php 里面把两个参数替换一下就ok了
function random($length, $chars = '0123456789') {
$hash = '';
$max = strlen($chars) - 1;
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
//这里重点:只要把random第二参数重新打乱,不要使用以前v9固定的数据
print_r($this->random(32, 'abcdefghigklmnopqrstuvwxyz1294567890ABCDEFGHIGKLMNOPQRSTUVWXYZ'));exit;//phpsso_auth_key
print_r($this->random(20, 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLM1294567890NOPQRSTUVWXYZ'));exit;//auth_key