suchen
HeimCMS-TutorialPHPCMSVerschiedene Patches für PHPCMS-Injection-Schwachstellen

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

wird ersetzt durch

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

2. phpcms-Injection-Schwachstelle

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

if ($_GET['group']) {

und fügen Sie dann

$_GET['group'] = preg_replace('#`#', '', $_GET['group']);

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

durch

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

(2) Zeile 89

parse_str($a_k);

Ersetzen Sie durch

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

(3) Fügen Sie

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

nach Zeile 120 von

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

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

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

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;

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

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

wird durch

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

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

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

mit , Two-in-One-Code

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

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

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!

Stellungnahme
Dieser Artikel ist reproduziert unter:阿里云. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.