
推荐(免费):phpcms教程
1、宽字节注入漏洞
/phpcms/modules/pay/respond.php 位置约16行
原来代码
$payment = $this->get_by_code($_GET['code']);
替换为
$payment = $this->get_by_code(mysql_real_escape_string($_GET['code']));
2、phpcms注入漏洞
/phpcms/modules/poster/poster.php 位置约221行
if ($_GET['group']) {
之后加上
$_GET['group'] = preg_replace('#`#', '', $_GET['group']);
3、phpcms前台注入导致任意文件读取漏洞补丁
/phpcms/modules/content/down.php
(1)位置约17行
parse_str($a_k);
替换为
$a_k = safe_replace($a_k); parse_str($a_k);
(2)位置约89行
parse_str($a_k);
替换为
$a_k = safe_replace($a_k); parse_str($a_k);
【6.3版本的已经修复上面两个问题了】
(3)位置约120行
$filename = date('Ymd_his').random(3).'.'.$ext;
之后加上
$fileurl = str_replace(array('<','>'), '',$fileurl);
4、phpcms注入漏洞
/phpcms/modules/member/index.php 位置约615行
原来代码:
$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),HTTP_REFERER);
替换为:
$password = isset($_POST['password']) && trim($_POST['password']) ? addslashes(urldecode(trim($_POST['password']))) : showmessage(L('password_empty'), HTTP_REFERER);
5、PHPCMS V9.6.2 SQL注入漏洞
(1)phpcms/libs/classes/param.class.php 位置约109行
原来代码
$value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
替换为
$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],'DECODE')):$default;
(2)/phpsso_server/phpcms/libs/classes/param.class.php 位置约108行
原来代码
return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;
替换为
return isset($_COOKIE[$var]) ? addslashes(sys_auth($_COOKIE[$var],'DECODE')) : $default;
6、phpcms某处逻辑问题导致getshell
/phpcms/libs/classes/attachment.class.php 位置约143行
function download($field, $value,$watermark = '0',$ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = ''){
之后加上
// 此处增加类型的判断 if($ext !== 'gif|jpg|jpeg|bmp|png'){ if(!in_array(strtoupper($ext),array('JPG','GIF','BMP','PNG','JPEG'))) exit('附加扩展名必须为gif、jpg、jpeg、bmp、png'); }
7、phpcms注入漏洞
/api/phpsso.php 位置约128行
原来代码
$arr['uid'] = intval($arr['uid']); $phpssouid = $arr['uid'];
替换为,二合一代码
$phpssouid = intval($arr['uid']);
8、phpcms authkey生成算法问题导致authkey泄露
1.在/caches/configs/system.php,增加第一个参数:
'alivulfix' => 'yes',
修改后,代码截图如下:

2.找到并修改auth_key,20位字符串;具体写什么,自定义即可。
'auth_key' => '2qKYgs0PgHWWtaFVb3KP', //密钥
3.找到并修改auth_key,32位字符串;具体写什么,自定义即可。
'phpsso_auth_key' => 'hjor66pewop_3qooeamtbiprooteqein', //加密密钥
注意:到了这一步,跟阿里云的云骑士一键修复是一样的了。
只是网站用户暂时都登录不了,接下来还有最重要的一步。
4、后台登录phpsso管理中心,在导航菜单phpsso ——> 应用管理 ——> 编辑中,编辑“通信密钥”为第3步设置的’phpsso_auth_key’ 的值,然后点击提交。
关键步骤截图如下:

提交之后,页面显示通信成功,如下图。

想了解更多编程学习,敬请关注php培训栏目!
Atas ialah kandungan terperinci 合集phpcms安全漏洞. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Semak status port yang diduduki dalam tingkap
Bagaimana untuk memadam alamat WeChat saya
Apakah perbezaan antara linux dan windows
Bagaimana untuk menyediakan tapak FTP
Perbezaan antara timbunan dan timbunan
konfigurasi pembolehubah persekitaran java
Apakah pengekodan yang digunakan di dalam komputer untuk memproses data dan arahan?
Lima sebab mengapa komputer anda tidak dapat dihidupkan