PHPCMS各種注入漏洞補丁

PHPCMS各種注入漏洞補丁

1、寬字節(jié)注入漏洞

/phpcms/modules/pay/respond.php 位置約16行

原來代碼

$payment?=?$this->get_by_code($_GET['code']);

替換為

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

$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前臺注入導(dǎo)致任意文件讀取漏洞補丁

/phpcms/modules/content/down.php

(1)位置約17行

parse_str($a_k);

替換為

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

$a_k?=?safe_replace($a_k);?parse_str($a_k);

(2)位置約89行

parse_str($a_k);

替換為

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

$a_k?=?safe_replace($a_k);?parse_str($a_k);

(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;

替換為

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

$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;

替換為

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

return?isset($_COOKIE[$var])???addslashes(sys_auth($_COOKIE[$var],'DECODE'))?:?$default;

6、phpcms某處邏輯問題導(dǎo)致getshell

/phpcms/libs/classes/attachment.class.php 位置約143行

function?download($field,?$value,$watermark?=?'0',$ext?=?'gif|jpg|jpeg|bmp|png',?$absurl?=?'',?$basehref?=?''){

之后加上

???$extArray=explode('|',$ext);? ?????if(!empty($extArray)?&&?is_array($extArray)){? ?????????foreach($extArray?as?$k?=>?$v){? ???????????if(!in_array(strtolower($v),?array('gif','jpg','jpeg','bmp','png')));?exit('0');//循環(huán)判斷如果 ???????????有一個不符合,直接返回?0? ?????????}? ??????}

這樣,加入一個判斷,如果允許的文件格式是’gif’,’jpg’,’jpeg’,’bmp’,’png’這些,就繼續(xù),不然就跳出,當然這里的格式可以根據(jù)需要增多幾個。

7、phpcms注入漏洞

/api/phpsso.php 位置約128行

原來代碼

$arr['uid']?=?intval($arr['uid']); $phpssouid?=?$arr['uid'];

替換為,二合一代碼

$phpssouid?=?intval($arr['uid']);

8、phpcms authkey生成算法問題導(dǎo)致authkey泄露

照著下面的函數(shù)重新生成一下key值,然后找caches/configs/system.php 里面把兩個參數(shù)替換一下就ok了

<?php        function random($length, $chars = &#39;0123456789&#39;) {                  $hash = &#39;&#39;;          $max = strlen($chars) - 1;          for($i = 0; $i < $length; $i++) {              $hash .= $chars[mt_rand(0, $max)];          }          return $hash;      }          echo random(20, &#39;authkey&#39;).&#39;<br/>';???? ????echo?random(32,?'phpssoauthkey');exit;? ?&gt;

PHP中文網(wǎng),大量的免費PHPCMS教程,歡迎在線學(xué)習(xí)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊6 分享