
Proof-of-Concept-Exploit für CVE-2024-2961, der iconv-Kodierungsfehler und PHP-Filterketten ausnutzt, um beliebige Dateien von verwundbaren Servern über manipulierte Payload-Uploads zu lesen.
Dieses Skript demonstriert, wie eine Schwachstelle in Systemen ausgenutzt werden kann, die die iconv-Bibliothek verwenden, wenn sie Zeichenkodierungskonvertierungen fehlerhaft behandelt, wie in CVE-2024-2961 beschrieben. Es ermöglicht einem Angreifer, beliebige Dateien vom Server auszulesen, indem PHP-Filterketten und fehlerhafte Kodierungsbehandlungen ausgenutzt werden.
Das Skript automatisiert den Prozess des Hochladens eines manipulierten Payloads, des Abrufens der resultierenden Datei und der Anzeige ihres Inhalts. Es basiert auf der Forschung, die im Artikel detailliert beschrieben ist: Iconv CVE-2024-2961: Ausnutzung von Zeichenkodierungskonvertierungen.
Das Skript führt folgende Schritte aus:
Payload-Erstellung
Es erstellt einen PHP-Filterketten-Payload, der iconv-Kodierungskonvertierungen nutzt, um jede Datei auf dem Server zu lesen. Dieser Payload ist darauf ausgelegt, normale Beschränkungen zu umgehen und Zugriff auf Dateien wie /etc/passwd oder andere sensible Dateien zu ermöglichen.
Datei-Upload
Es sendet eine POST-Anfrage an den admin-ajax.php-Endpunkt des Zielservers, die einen Bild-Upload vortäuscht. Der Payload wird in der Anfrage versteckt, sodass der Server ihn als legitime Datei verarbeitet.
Datei-Download
Nach dem Hochladen des Payloads lädt das Skript die Datei herunter, die nun den Inhalt der Zieldatei enthält. Schließlich extrahiert und zeigt es diesen Inhalt an.
requests-Bibliothek (Installation mit pip install requests)iconv und PHP.Repository klonen oder Skript herunterladen:
git clone https://github.com/kyotozx/CVE-2024-2961-Remote-File-Read.git
cd CVE-2024-2961-Remote-File-Read
Skript ausführen:
python3 lfi.py
Folgen Sie den Eingabeaufforderungen:
/etc/passwd).1).Was das Skript tut:
Remote File Read Exploitation - CVE-2024-2961
Enter the path of the file you want to read (e.g., /etc/passwd): /etc/passwd
Enter a numeric ID for the upload (e.g., 1): 1
File uploaded successfully: http://blog.bigbang.htb/wp-content/uploads/2025/01/1-50.png
File content:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
Dieses Skript ist ausschließlich für Bildungs- und autorisierte Testzwecke bestimmt. Verwenden Sie es nicht auf Systemen ohne ausdrückliche Genehmigung.