首頁 > CMS教程 > PHPCMS > 主體

PHPCMS各種注入漏洞補丁

爱喝马黛茶的安东尼
發布: 2019-11-21 10:24:52
轉載
6029 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板