首頁  >  文章  >  CMS教程  >  PHPCMS各種注入漏洞補丁

PHPCMS各種注入漏洞補丁

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼轉載
2019-11-21 10:24:526004瀏覽

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

(3)位置約120行

$filename = date('Ymd_his').random(3).'.'.$ext;

之後加上

$fileurl = str_replace(array(&#39;<&#39;,&#39;>&#39;), &#39;&#39;,$fileurl);

4、phpcms注入漏洞

# /phpcms/modules/member/index.php 位置約615行

原來程式碼:

$password = isset($_POST[&#39;password&#39;]) && trim($_POST[&#39;password&#39;]) ? trim($_POST[&#39;password&#39;]) : 
showmessage(L(&#39;password_empty&#39;),HTTP_REFERER);

替換為:

$password = isset($_POST[&#39;password&#39;]) && trim($_POST[&#39;password&#39;]) ? addslashes(urldecode(trim($_POST[&#39;password&#39;]
))) : showmessage(L(&#39;password_empty&#39;), HTTP_REFERER);

##5、PHPCMS V9.6.2 SQL注入漏洞

(1)phpcms/libs/classes/param.class.php 位置約109行

原來程式碼

$value = isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], &#39;DECODE&#39;) : $default;

替換為

$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],&#39;DECODE&#39;)):$default;

(2)/phpsso_server/phpcms/libs/classes/param.class.php 位置約108行

原來程式碼

return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], &#39;DECODE&#39;) : $default;

替換為

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

#6、phpcms某處邏輯問題導致getshell

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

function download($field, $value,$watermark = &#39;0&#39;,$ext = &#39;gif|jpg|jpeg|bmp|png&#39;, $absurl = &#39;&#39;, $basehref = &#39;&#39;){

之後加上

   $extArray=explode(&#39;|&#39;,$ext); 
     if(!empty($extArray) && is_array($extArray)){ 
         foreach($extArray as $k => $v){ 
           if(!in_array(strtolower($v), array(&#39;gif&#39;,&#39;jpg&#39;,&#39;jpeg&#39;,&#39;bmp&#39;,&#39;png&#39;))); exit(&#39;0&#39;);//循环判断如果
           有一个不符合,直接返回 0 
         } 
      }

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

7、phpcms注入漏洞

/api/phpsso.php 位置約128行

原來程式碼

$arr[&#39;uid&#39;] = intval($arr[&#39;uid&#39;]);
$phpssouid = $arr[&#39;uid&#39;];

#替換為,二合一程式碼

$phpssouid = intval($arr[&#39;uid&#39;]);

8、phpcms authkey產生演算法問題導致authkey洩漏

照著下面的函數重新產生key值,然後找caches/configs /system.php 裡面把兩個參數替換一下就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/>&#39;;    
    echo random(32, &#39;phpssoauthkey&#39;);exit; 
?>

PHP中文網,大量的免費

PHPCMS教程,歡迎線上學習!

以上是PHPCMS各種注入漏洞補丁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:aliyun.com。如有侵權,請聯絡admin@php.cn刪除