Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/0xlipon/xss2shell
DefensivwerkzeugeAufklärungSchwachstellenscannerWeb-SchwachstellenscannerPayload-GenerierungSchwachstellenanalyseWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHub0xlipon/xss2shell

xss2shell

Verhaltensbasierter WordPress-CVE-2026-64638-Scanner, der gutartige Login-Probes verwendet; klassifiziert das Sanitizer-Verhalten und erzeugt reine Alert-PoCs für autorisierte Nutzung.

3vor 12 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigenWebseite

CVE-2026-64638 CVSS 8.9 pwn.ai Python 3.8+

🔥 XSS2Shell — CVE-2026-64638 Scanner & PoC-Toolkit

Verhaltensbasierter Massen-Scanner und beweistauglicher PoC-Generator für die WordPress-Pre-Auth-XSS-zu-RCE-Kette, die über 500 Millionen Websites betrifft.
Nur Erkennung. Keine Waffenisierung. Entwickelt für Bug-Bounty-Programme und Blue Teams.

Offizieller Checker: https://pwn.ai/xss2shell-checker.html

Was ist das? • Schnellstart • Shodan-Dorks • Verwendung • Entscheidungsmatrix • Erkennung • FAQ


🔎 Shodan-Dorks

Durchsuchen Sie vor dem Scannen das Internet nach potenziell verwundbaren WordPress-Instanzen:

Kern-Erkennung von WordPress

root@kitploit:~
http.component:"wordpress" -http.title:"Just a moment"

Findet WordPress-Seiten und schließt dabei Cloudflare-Seiten im Modus "I'm Under Attack" sowie Bot-Schutz-Seiten aus, die automatisierte Anfragen blockieren oder mit einer Challenge beantworten.

Eingrenzen auf Anmeldeseiten

root@kitploit:~
http.component:"wordpress" http.title:"Log In"

Gibt nur WordPress-Anmeldeseiten zurück — genau die Angriffsfläche für CVE-2026-64638.

Versionsspezifische Suche

root@kitploit:~
http.component:"wordpress" "wp-content" "?ver=7.0" -"?ver=7.0.3"

Markiert WordPress-7.0.x-Instanzen ohne den 7.0.3-Patch per Asset-Versions-Fingerprinting.

Angriffsfläche erweitern

root@kitploit:~
http.component:"wordpress" http.html:"wp-login.php"

Erfasst Seiten, auf denen wp-login.php erreichbar ist, aber nicht unbedingt die aktuelle Seite ist — für eine breitere Abdeckung.

Cloudflare-Ausschlüsse (kombiniert)

root@kitploit:~
http.component:"wordpress" -http.title:"Just a moment" -http.title:"Attention Required" -org:"Cloudflare"

Aggressiver Filter, der die meisten Cloudflare-geschützten Ziele entfernt. Für Scans in großem Maßstab mit --active verwenden — Cloudflare drosselt oder blockiert die Probe-Anfrage.

Tipp: Exportieren Sie Shodan-Ergebnisse mit shodan download und leiten Sie die Hostnamen direkt in xss2shell_mass.py -i weiter.


🚨 Was ist CVE-2026-64638?

Am 7. August 2026 hat pwn.ai CVE-2026-64638 (XSS2Shell) offengelegt — eine kritische Pre-Auth-Cross-Site-Scripting-Schwachstelle im WordPress-Core, die sich bis hin zur Remote-Codeausführung auf dem Server ausweiten lässt. [citation:pwn.ai blog]

Der Fehler nutzt eine Parser-Diskrepanz zwischen PHP strip_tags() und WordPress wp_kses_post() aus:

  • strip_tags() verwendet < unmittelbar gefolgt von einem Buchstaben, um HTML-Tags zu identifizieren. < area id=...> (mit einem Leerzeichen) wird als Text behandelt — es überlebt.
  • wp_kses_post() (KSES) erkennt < area als gültiges <area>-Element — und <area> ist in KSES auf der Whitelist. [citation:pwn.ai blog]

Ein fehlgeschlagener Login mit einem speziell präparierten Benutzernamen < area id=ajaxurl href=/?rest_route=/&_method=GET&_jsonp=alert>... umgeht beide Sanitizer, wird als Live-DOM auf der Anmeldeseite gerendert, kapert das eigene user-profile.js-Skript von WordPress per DOM-Clobbering und löst alert() im WordPress-Ursprung aus — null Klicks, keine Authentifizierung, keine Cookies erforderlich. [citation:pwn.ai blog]

Zu einem angemeldeten Administrator eskaliert? Dieselbe Primitive stiehlt Application Passwords per Same-Origin-Method-Execution (SOME), lädt ein bösartiges Plugin hoch und führt PHP als www-data aus. [citation:pwn.ai blog] [citation:hadrian.io blog]

Betroffen: WordPress 6.4 bis 7.0.2 — in 7.0.3 gepatcht, mit Backports bis 4.7+.
Auswirkungen: ~500 Millionen Websites zum Zeitpunkt der Offenlegung. [citation:pwn.ai blog]

📰 Wichtige Ressourcen


⚡ Was dieses Toolkit tut

Dies ist ein reines Erkennungs-Toolkit. Es beinhaltet keine Waffenisierung der Schwachstelle — es gibt Sicherheitsforschern, Bug-Bounty-Jägern und Blue Teams alles an die Hand, um:

  1. Hunderte WordPress-Hosts in Minuten massenhaft zu scannen — mit verhaltensbasierter Genauigkeit
  2. Beweistaugliche PoC-Seiten zu generieren, um zu belegen, dass das XSS ausgelöst wird (nur alert())
  3. Ergebnisse mit präzisen Konfidenzstufen zu klassifizieren — keine False Positives durch Versionsabgleich

🔑 Warum Behavior-First?

"Ein Versionsstring sagt, welcher Patchstand der Code sein sollte.
Nur das Verhalten des Anmeldeseiten-Sanitizers sagt, ob der Fehler greift."

Verwaltete Hosts portieren Sicherheitspatches still zurück, ohne die Versionsstrings zu erhöhen. Login-Härtungs-Plugins ersetzen die Fehlermeldung vollständig und unterbinden damit den Reflexionskanal selbst auf unsicheren Versionen. Reine Versions-Scanner erzeugen False Positives und False Negatives. Dieser Scanner sendet eine einzige harmlose Probe und klassifiziert das tatsächliche Sanitizer-Verhalten.


🚀 Schnellstart

Installation

root@kitploit:~
git clone https://github.com/jakestone/xss2shell.git
cd xss2shell
pip install -r requirements.txt

5-Minuten-Scan

root@kitploit:~
# Passive — no probes sent to target, version + endpoint fingerprinting only
python3 xss2shell_mass.py -i domains.txt -o results

# Active — sends ONE benign failed-login per host (authorized assets only!)
python3 xss2shell_mass.py -i domains.txt -o results --active --workers 80

PoCs für Beweiszwecke generieren

root@kitploit:~
# Single target
python3 make_poc.py --target https://blog.example.com

# Batch from scanner output
python3 make_poc.py --from-results results.csv -o pocs/

Öffnen Sie die generierte .poc.html in Ihrem Browser und zeichnen Sie dabei ein Video auf → wenn alert() ausgelöst wird, haben Sie Pre-Auth-XSS-Beweise erfasst.


📖 Verwendung

Massen-Scanner (xss2shell_mass.py)

root@kitploit:~
usage: xss2shell_mass.py [-h] -i INPUT [-o OUTPUT]
                         [--active] [--workers WORKERS]
                         [--timeout TIMEOUT] [--quiet]

Passive Scan-Beweise (keine aktive Probe, immer erfasst)

  1. Startseite → WordPress-Fingerprint (Meta-Generator, Asset-?ver=-Parameter, wp-content-Referenzen)
  2. Anmeldeseite → Erreichbarkeit, Erkennung des Standard-Anmeldeformulars, user-profile.js-Gadget eingebunden, Core-Asset-Versionen
  3. REST-JSONP-Smoke-Test → Harmloser GET auf /?rest_route=/&_method=GET&_jsonp=<random> — ist der JSONP-Pfad offen?
  4. Feed-/Readme-Fallback → Versions-Extraktion, wenn der Startseiten-Fingerprint fehlt

Aktive Probe (ein POST, --active-Flag)

Sendet einen einzelnen fehlgeschlagenen Login mit dem Benutzernamen < area id=<RANDOM> href=/x2s> und klassifiziert die HTML-Antwort:

  • bypass — Echtes <area>-Element mit unserer Markierung hat überlebt → strip_tags/KSES-Diskrepanz BESTÄTIGT
  • escaped — Markierung vorhanden, aber Entity-kodiert → Patch oder Härtung vorhanden
  • stripped — Standard-WP-Fehler angezeigt, Tags entfernt → acevomod oder gepatcht
  • closed — Keinerlei Benutzername-Reflexion → Login-Härtungs-Plugin installiert

PoC-Generator (make_poc.py)

root@kitploit:~
usage: make_poc.py [-h] [--target TARGET] [--from-results FROM_RESULTS]
                   [-o OUTDIR]

Generiert für jedes Ziel die veröffentlichte pwn.ai-PoC-Seite — das exakte HTML-Formular, das auf einem ungepatchten WordPress alert() auslöst. Drei Payload-Varianten sind in Kommentaren enthalten:


🧠 Entscheidungsmatrix

Die Entscheidungs-Engine des Scanners kombiniert die Versionsklassifizierung (aus der stable-check-API von WordPress.org) mit verhaltensbasierten Beweisen, um 10 unterschiedliche Einstufungen zu erzeugen:

Ausgabeformat

CSV-Spalten: host, url, status, checker_status, wp_version, branch_status, evidence, http, ms, error

Die Spalte checker_status bildet auf das Vokabular des öffentlichen pwn.ai-Checkers ab (vulnerable / patched / not_wordpress / unreachable / inconclusive / error), für eine direkte Korrelation.


🔍 Erkennungssignaturen (Blue Team / SOC)

Wenn Sie auf der Verteidigungsseite stehen, finden Sie hier die forensischen Signale, die diese Schwachstelle hinterlässt:

Serverseitig (Webserver-/WAF-Logs)

root@kitploit:~
# Primary signal: encoded '<' in the log parameter
POST /wp-login.php  →  log=%3C...  (URL-encoded < in username field)

# Higher confidence: paired with REST pivoting
GET /?rest_route=/&_method=GET&_jsonp=...     # JSONP callback
GET /wp-json/wp/v2/statuses/publish?_jsonp=...  # WAF-bypass variant

# Escalation stage indicators
GET /wp-admin/authorize-application.php?success_url=<off-origin>
POST /wp-admin/update.php?action=upload-plugin
GET /wp-content/plugins/<random>/shell.php

Edge-/WAF-Blockierregel

Blockieren Sie POST /wp-login.php, wenn der log-Parameter %3C (URL-kodiertes <) enthält. Gültige WordPress-Benutzernamen enthalten niemals spitze Klammern. Nicht auf bestimmte Tags eingrenzen — KSES erlaubt Tabulator, Zeilenumbruch und Wagenrücklauf nach < sowie jedes Whitelist-Tag, daher lässt sich eine Tag-spezifische Regel trivial umgehen. [citation:hadrian.io blog]

Wichtige Erkenntnis für Verteidiger

Der _jsonp=-Callback in der Eskalationsphase verwendet Punkte für die Eigenschafts-Traversierung (z. B. window.opener.approve.click). Kennzeichnen Sie REST-Anfragen mit gepunkteten JSONP-Callbacks als starke Indikatoren für eine Ausnutzung. [citation:hadrian.io blog]


⚖️ Rechtmäßige & ethische Nutzung

root@kitploit:~
THIS TOOL IS DETECTION-ONLY. IT DOES NOT:
  ✗ Weaponize the JSONP callback beyond the public alert()
  ✗ Include admin-lure pages or Application Password capture
  ✗ Include REST abuse, plugin upload, or PHP shell code
  ✗ Execute more than one failed login per target per scan

YOU MUST:
  ✓ Only scan assets you own or have written authorization to test
  ✓ Only generate PoCs for your own browser on your own server
  ✓ Never send PoC links to site admins/users
  ✓ Never escalate past alert() without program written approval
  ✓ Follow the bug bounty program scope and rules

This toolkit exists for authorized security research, bug bounty
programs, and defensive detection engineering. Misuse is your
responsibility.

📁 Repository-Struktur

root@kitploit:~
xss2shell/
├── README.md                  ← You are here
├── xss2shell_mass.py          ← Behavior-first mass scanner (v1.1.0)
├── make_poc.py                ← Evidence-grade PoC page generator
├── requirements.txt           ← Python dependencies (just `requests`)
├── .gitignore                 ← Ignores scan outputs and cache
└── example/
    ├── domains.txt            ← Example input file
    └── example_output.csv     ← Example scan output

❓ FAQ

F: Warum nicht einfach den WordPress-Versionsstring prüfen?
A: Verwaltete Hosts (WP Engine, Kinsta, Pantheon usw.) portieren Sicherheitspatches häufig zurück, ohne die Version zu erhöhen. Login-Härtungs-Plugins ersetzen die Fehlermeldung vollständig. Beide Fälle erzeugen False Positives bei reinen Versions-Scannern und False Negatives bei verborgenen Versionen. Dieser Scanner testet das tatsächliche Sanitizer-Verhalten.

F: Ist die --active-Probe gefährlich?
A: Nein. Sie sendet genau einen fehlgeschlagenen Login mit einem harmlosen Markierungs-Benutzernamen. Sie versucht nicht, JavaScript auszuführen, enumeriert keine gültigen Benutzernamen und löst keinen tatsächlichen Exploit aus. Sie ist weniger invasiv als ein normaler Anmeldeversuch.

F: Kann dieses Tool für nicht autorisierte Scans verwendet werden?
A: Nein. Die aktive Probe sendet einen HTTP-POST an /wp-login.php, also eine Anfrage an den Zielserver. Verwenden Sie es nur für Assets, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben.

F: Was ist der Unterschied zwischen vulnerable und confirmed_vulnerable?
A: vulnerable bedeutet, dass die WordPress.org-API die Version als unsicher einstuft, wir die strip_tags/KSES-Diskrepanz aber nicht verhaltensbasiert bestätigt haben. confirmed_vulnerable bedeutet, dass wir eine Probe gesendet haben und das <area>-Element beide Sanitizer überlebt hat — die veröffentlichte Kette kann greifen.

F: Kann ich das für meine Bug-Bounty-Programm-Berichte verwenden?
A: Ja! Die Spalte checker_status bildet direkt auf das Vokabular des öffentlichen pwn.ai-Checkers ab, für eine einfache Korrelation. Kombinieren Sie Scan-Ergebnisse mit PoC-Videobeweisen aus make_poc.py für vollständige Berichte.

F: Erkennt dieses Tool die RCE-Kette?
A: Nein. Dieses Toolkit erkennt den Pre-Auth-XSS-Einstiegspunkt. Die vollständige RCE-Kette erfordert einen angemeldeten Administrator, aktivierte Application Passwords und Plugin-Upload-Berechtigungen — Bedingungen, die dieser Scanner nicht bewertet. Der Scanner konzentriert sich auf das, was extern beobachtbar ist: die Sanitizer-Umgehung.


🏆 Danksagungen & Referenzen

  • Entdeckung & Offenlegung: pwn.ai — autonom von einem Multi-Agenten-KI-System entdeckt
  • Grundlage der SOME-Technik: Paulos Yibelo — Forschung von 2022, nominiert für die Top Web Hacking Techniques
  • Technische Analyse: Hadrian — umfassende Hinweise zu Erkennung und Gegenmaßnahmen
  • CVE: CVE-2026-64638 / GHSA-52p2-r8wf-jcrf
  • Patch: WordPress 7.0.3

Erstellt von 0xlipon • Nur Erkennung • Nur für autorisierte Nutzung

Tool herunterladen
RessourceLink
Originale Offenlegung (pwn.ai)pwn.ai/blog/xss2shell
Technische Analyse (Hadrian)hadrian.io/blog/wordpress-xss2shell
WordPress-Sicherheitshinweis (GHSA)GHSA-52p2-r8wf-jcrf
SOME-Angriffsforschung (2022)pwn.ai/blog/bypass-csp-using-wordpress
WordPress-7.0.3-Releasewordpress.org/news/2026/08/wordpress-7-0-3-release
FlagBeschreibung
-i, --inputDatei mit einem Host pro Zeile (nackte Domain oder vollständige URL)
-o, --outputBasis-Pfad für Ausgabedateien (erzeugt .csv + .json)
--activeVerhaltensprobe aktivieren — ein fehlgeschlagener Login pro Host
--workersThread-Pool-Größe (Standard: 50, max. ~200 bei guten Verbindungen)
--timeoutHTTP-Timeout in Sekunden (Standard: 10)
--quietNur confirmed_vulnerable, vulnerable und likely_vulnerable ausgeben
Variantehref-WertWann verwenden
Standard/?rest_route=/&_method=GET&_jsonp=alertStandard-WordPress
Envelope/?rest_route=/&_method=GET&_envelope=1&_jsonp=alertREST gibt 401 zurück (verpackt in 200)
WAF-Pivot/wp-json/wp/v2/statuses/publish?_jsonp=alert&_method=GET?rest_route= von WAF blockiert
EinstufungBedingungen
confirmed_vulnerable 🔴Version ist unsicher UND die Proben-Markierung hat als <area>-Element überlebt UND das user-profile.js-Gadget ist vorhanden
vulnerable 🔴Version ist laut wordpress.org unsicher; Verhaltensprobe NICHT ausgeführt (erneut mit --active ausführen)
likely_vulnerable 🟠Proben-Markierung hat überlebt, ABER user-profile.js nicht eingebunden (veröffentlichtes Auto-Fire-Gadget fehlt)
mitigated 🟣Version ist unsicher, ABER Proben-Markierung wurde escaped/stripped/closed (stiller Backport oder Härtung)
likely_patched 🟢Version verborgen/unbekannt, ABER Proben-Markierung wurde escaped/stripped
patched 🟢Version ist latest oder outdated (hat Sicherheits-Backports)
not_wordpress ⚫Kein WordPress-Fingerprint erkannt
unreachable ⚫Verbindung fehlgeschlagen (Timeout, SSL, DNS)
inconclusive 🟡WAF-Block, Cloudflare-Challenge, verborgene Version ohne Probe oder Anmeldeseite fehlt
error 🟡Unerwarteter Fehler während des Scans