Heim > CMS-Tutorial > PHPCMS > Hauptteil

Verschiedene Patches für PHPCMS-Injection-Schwachstellen

爱喝马黛茶的安东尼
Freigeben: 2019-11-21 10:24:52
nach vorne
6026 Leute haben es durchsucht

Verschiedene Patches für PHPCMS-Injection-Schwachstellen

1. Wide-Byte-Injection-Schwachstelle

/phpcms/modules/pay/respond.php bei etwa 16 Zeile

Originalcode

$payment = $this->get_by_code($_GET['code']);
Nach dem Login kopieren

wird ersetzt durch

$payment = $this->get_by_code(mysql_real_escape_string($_GET['code']));
Nach dem Login kopieren

2. phpcms-Injection-Schwachstelle

/phpcms/modules/poster/poster .php befindet sich ungefähr in Zeile 221 von

if ($_GET['group']) {
Nach dem Login kopieren

und fügen Sie dann

$_GET['group'] = preg_replace('#`#', '', $_GET['group']);
Nach dem Login kopieren

3 hinzu. Patch für die Schwachstelle beim Lesen willkürlicher Dateien, die durch die PHPCMS-Frontend-Injection verursacht wird

/phpcms/ module/content/down.php

(1) Ersetzen Sie Zeile 17

parse_str($a_k);
Nach dem Login kopieren
Nach dem Login kopieren

durch

$a_k = safe_replace($a_k); parse_str($a_k);
Nach dem Login kopieren
Nach dem Login kopieren

(2) Zeile 89

parse_str($a_k);
Nach dem Login kopieren
Nach dem Login kopieren

Ersetzen Sie durch

$a_k = safe_replace($a_k); parse_str($a_k);
Nach dem Login kopieren
Nach dem Login kopieren

(3) Fügen Sie

$filename = date('Ymd_his').random(3).'.'.$ext;
Nach dem Login kopieren

nach Zeile 120 von

$fileurl = str_replace(array(&#39;<&#39;,&#39;>&#39;), &#39;&#39;,$fileurl);
Nach dem Login kopieren

hinzu. 4. phpcms-Injection-Schwachstelle

/phpcms/ module/member/index.php befindet sich in Zeile 615

Originalcode:

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

Ersetzt durch:

$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);
Nach dem Login kopieren

5. PHPCMS V9.6.2 SQL-Injection-Schwachstelle

(1) phpcms/libs/classes/param.class.php befindet sich ungefähr in Zeile 109

Der ursprüngliche Code

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

wird durch <🎜 ersetzt >
$value = isset($_COOKIE[$var])?addslashes(sys_auth($_COOKIE[$var],&#39;DECODE&#39;)):$default;
Nach dem Login kopieren

(2)/phpsso_server/phpcms/libs/classes/param.class.php befindet sich in etwa 108 Zeilen

Der ursprüngliche Code

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

wird durch

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

6. Ein logisches Problem irgendwo in phpcms führte dazu, dass sich getshell

/phpcms/libs/classes/attachment.class.php ungefähr in Zeile 143 nach

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

und fügen Sie

   $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 
         } 
      }
Nach dem Login kopieren

hinzu. Fügen Sie auf diese Weise ein Urteil hinzu. Wenn die zulässigen Dateiformate „gif“, „jpg“, „jpeg“, „bmp“, „png“ sind, fahren Sie fort, andernfalls Natürlich können die Formate hier beliebig erweitert werden.

7. phpcms-Injection-Schwachstelle

/api/phpsso.php befindet sich in etwa 128 Zeilen

Ersetzen Sie den ursprünglichen Code

$arr[&#39;uid&#39;] = intval($arr[&#39;uid&#39;]);
$phpssouid = $arr[&#39;uid&#39;];
Nach dem Login kopieren

mit , Two-in-One-Code

$phpssouid = intval($arr[&#39;uid&#39;]);
Nach dem Login kopieren

8. Probleme mit dem phpcms-Authentifizierungsschlüssel-Generierungsalgorithmus führen zu Authkey-Lecks

Generieren Sie den Schlüsselwert gemäß der folgenden Funktion neu , und dann Caches/Konfigurationen finden Ersetzen Sie einfach die beiden Parameter in /system.php und es wird gut sein

<?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; 
?>
Nach dem Login kopieren

PHP Chinesische Website, eine große Anzahl kostenloser

PHPCMS-Tutorials

, willkommen zum Lernen online!

Das obige ist der detaillierte Inhalt vonVerschiedene Patches für PHPCMS-Injection-Schwachstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:aliyun.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage