
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.
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.
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 |
|---|---|
| Produit | WC Designer Pro |
| Plateforme | WordPress |
| Classe de vulnérabilité | Téléversement de fichier arbitraire sans restriction |
| CWE | CWE-434 |
| Authentification requise | Non |
| Interaction utilisateur requise | Non |
| Impact potentiel | Exécution de code à distance |
| Complexité de l'attaque | Faible |
| Composant vulnérable | Gestionnaire de téléversement AJAX de WordPress |
| Action AJAX | wcdp_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.
Une exploitation réussie pourrait permettre à un attaquant non authentifié de :
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.
La plage de versions concernées est actuellement en cours de validation.
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.
Le flux de téléversement vulnérable semble faire confiance aux valeurs contrôlées par l'attaquant fournies à l'action AJAX suivante :
wcdp_save_canvas_design_ajax
La requête contient des métadonnées de fichier telles que :
La vulnérabilité existe lorsque le serveur accepte ces valeurs sans effectuer tous les contrôles suivants :
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 :
/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.
pipCette preuve de concept ne doit pas être utilisée contre des systèmes tiers sans autorisation écrite explicite.
Clonez le dépôt :
git clone https://github.com/m2hcz/wcdp-security-poc.git
cd wcdp-security-poc
Créez et activez un environnement virtuel :
python3 -m venv .venv
source .venv/bin/activate
Sous Windows :
python -m venv .venv
.venv\Scripts\Activate.ps1
Installez les dépendances :
pip install -r requirements.txt
Exemple de requirements.txt :
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
La preuve de concept ne doit être exécutée que contre une seule cible de laboratoire autorisée.
python3 exploit.py --url https://wordpress-lab.example
Pour une vérification non destructive :
python3 exploit.py \
--url https://wordpress-lab.example \
--file ./payloads/verification.txt
Exemple de fichier de vérification :
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 :
python3 exploit.py --help
Exemple de sortie :
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