
Le plugin Backup Migration pour WordPress est vulnérable à l'exécution de code à distance dans toutes les versions jusqu'à la version 1.3.7 incluse, via le fichier /includes/backup-heart.php.
Preuve de concept de l'exploit pour CVE-2023-6553 — une vulnérabilité critique d'exécution de code à distance non authentifiée dans le plugin WordPress « Backup Migration » (versions ≤ 1.3.7).
| Propriété | Détail |
|---|---|
| Identifiant CVE | CVE-2023-6553 |
| Score CVSS | 9,8 / 10 — Critique |
| Vecteur CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-94 — Contrôle inadéquat de la génération de code |
| Plugin concerné | Backup Migration (slug : backup-backup) |
| Versions concernées | ≤ 1.3.7 |
| Authentification | Aucune requise (non authentifié) |
| Découvert par | Wordfence |
Le plugin Backup Migration pour WordPress est vulnérable à l'exécution de code à distance dans toutes les versions jusqu'à la 1.3.7 incluse, via le fichier /includes/backup-heart.php.
La vulnérabilité existe car un attaquant peut contrôler les valeurs passées à une instruction include de PHP via l'en-tête HTTP Content-Dir. En utilisant une chaîne de filtres PHP, un attaquant peut injecter du code PHP arbitraire sans authentification — réalisant une exécution de code à distance complète sur le serveur.
┌──────────┐ En-tête Content-Dir ┌──────────────────────┐ include() ┌──────────┐
│ Attaquant│ ──── Chaîne de filtres ──▶│ backup-heart.php │ ──────────────▶ │ RCE │
│ │ (aucune authentification) │ │ sur hôte│
└──────────┘ └──────────────────────┘ └──────────┘
readme.txtContent-Dir au point d'accès vulnérable.
├── exploit.py # 🎯 Exploit propre et professionnel (mode verbeux pris en charge)
├── fancy_exploit.py # ✨ Version fancy — même exploit, meilleure ambiance
├── php_filter_chain.py # 🔗 Module générateur de chaîne de filtres PHP
└── README.md # 📖 Vous êtes ici
exploit.py — Exploit professionnelLe script d'exploit principal et propre, conçu pour une utilisation professionnelle dans les tests de sécurité et les études de cas. Fonctionnalités :
-v) pour une sortie opérationnelle détaillée-C)fancy_exploit.py — La version fancy ✨Une version plus expressive du même exploit avec une personnalité supplémentaire. Fonctionnellement identique à exploit.py mais avec une présentation beaucoup plus colorée :
Remarque : Les deux scripts partagent une logique d'attaque identique —
fancy_exploit.pyenveloppe simplement l'expérience dans une couche de sortie visuellement plus expressive.
pip# Cloner le dépôt
git clone https://github.com/<votre-nom-utilisateur>/CVE-2023-6553.git
cd CVE-2023-6553
# Installer les dépendances
pip install -r requirements.txt
Remarque :
php_filter_chain.pyest un module local inclus dans le dépôt — aucune installation supplémentaire nécessaire.
exploit.py
# Vérifier si une cible est vulnérable (reconnaissance uniquement)
python3 exploit.py -u http://cible.com -C
# Exploiter et exécuter une commande
python3 exploit.py -u http://cible.com -c id
# Vérifier la vulnérabilité d'abord, puis exploiter
python3 exploit.py -u http://cible.com -C -c whoami
# Mode verbeux pour une sortie détaillée
python3 exploit.py -u http://cible.com -c id -v
fancy_exploit.py
# Vérifier si une cible est vulnérable
python3 fancy_exploit.py -u http://cible.com -C
# Exploiter et exécuter une commande
python3 fancy_exploit.py -u http://cible.com -c id
# Vérifier d'abord, puis exploiter si vulnérable
python3 fancy_exploit.py -u http://cible.com -C -c whoami
| Drapeau | Description |
|---|---|
-u, --url | (Requis) URL cible WordPress |
-c, --command | Commande OS à exécuter après exploitation |
-C, --check | Vérifier l'état de vulnérabilité sans exploiter |
-v, --verbose | Activer la sortie verbeuse (exploit.py uniquement) |
| Phase | Nom | Description |
|---|---|---|
| 1 | 🔍 Reconnaissance | Récupère readme.txt pour détecter la version installée du plugin |
| 2 | 🧪 Génération de la charge utile | Construit une chaîne de filtres PHP qui se décode en un injecteur de webshell |
| 3 | 💣 Livraison de l'exploit | Envoie la charge utile à backup-heart.php via l'en-tête Content-Dir |
| 4 | 🚀 Exécution de commande | Déclenche le webshell déployé avec la commande OS spécifiée |