### [合集phpcms安全漏洞](https://www.prosaas.cn/article/474) **Published:** 2020-12-04T08:53:18 **Author:** 5201314 **Excerpt:** phpcms教程介绍常见的phpcms安全漏洞推荐(免费):phpcms教程1、宽字节注入漏洞/phpcms/… ## phpcms教程介绍常见的phpcms安全漏洞 ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212114753396.jpg) **推荐(免费):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', 修改后,代码截图如下: ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212114753974.png) 2.找到并修改auth\_key,20位字符串;具体写什么,自定义即可。 'auth\_key' => '2qKYgs0PgHWWtaFVb3KP', //密钥 3.找到并修改auth\_key,32位字符串;具体写什么,自定义即可。 'phpsso\_auth\_key' => 'hjor66pewop\_3qooeamtbiprooteqein', //加密密钥 注意:到了这一步,跟阿里云的云骑士一键修复是一样的了。  只是网站用户暂时都登录不了,接下来还有最重要的一步。 4、后台登录phpsso管理中心,在导航菜单phpsso ——> 应用管理 ——> 编辑中,编辑“通信密钥”为第3步设置的’phpsso\_auth\_key’ 的值,然后点击提交。 关键步骤截图如下:  ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212114753276.png) 提交之后,页面显示通信成功,如下图。 ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212114753944.png) > **想了解更多编程学习,敬请关注****php培训****栏目!** 以上就是合集phpcms安全漏洞的详细内容,更多请关注知企PROSAAS其它相关文章! **Tags:** class, php, PHPCMS, sql, 字符串, 算法 **Categories:** PHPCMS ---