Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-97657 — Python-PoC für CVE-2026-97657: fälscht AES-CTR-Wiederherstellungstoken durch XOR-Malleabilität, um die Authentifizierung zu umgehen und WordPress-Konten in Abandoned Cart Pro ≤10.8.0 zu übernehmen. | Kitploit
Tools/GitHubGitHub/murrez/cve-2026-97657
Privilege EscalationSchwachstellenscannerSchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitKryptographieAuthentifizierung
GitHubmurrez/cve-2026-97657

CVE-2026-97657

Python-PoC für CVE-2026-97657: fälscht AES-CTR-Wiederherstellungstoken durch XOR-Malleabilität, um die Authentifizierung zu umgehen und WordPress-Konten in Abandoned Cart Pro ≤10.8.0 zu übernehmen.

1vor 23 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 anzeigen

CVE-2026-97657 — Authentifizierungsumgehung in Abandoned Cart Pro for WooCommerce

Python-3-PoC für CVE-2026-97657 — Abandoned Cart Pro for WooCommerce (Tyche Softwares) ≤ 10.8.0. CNA: Wordfence.

ProduktAbandoned Cart Pro for WooCommerce
Betroffen≤ 10.8.0 (Upgrade auf eine korrigierte Version über 10.8.0)
CWECWE-639 — Autorisierungsumgehung durch benutzergesteuerten Schlüssel
CVSS 3.19.8 Kritisch
VerifikationsmarkerPOCBIT-97657-OK (Session-/Admin-Prüfung)
PoCbithttps://pocbit.org/pocs/cve-2026-97657

Beschreibung

Wiederherstellungslinks verwenden MAC-freie AES-CTR-Token (mit Wcal_Aes_Ctr kompatibles Layout: 8-Byte-CTR-Nonce + Chiffretext, base64). Das Plugin lädt den encrypt_key pro E-Mail aus dem vom Angreifer kontrollierten user_email-Query-Parameter. In wcap_email_track_links() (Pro; Lite-Analogon wcal_email_track_links()) läuft die Prüfung von wcap_nonce / HMAC nur, wenn wcap_nonce nicht leer ist, sodass das Weglassen die Integritätsprüfung überspringt. Nach der Entschlüsselung wird die abandoned_id (Warenkorb-Zeilen-ID) verwendet, ohne zu belegen, dass sie zu dieser E-Mail gehört, und anschließend läuft wp_set_auth_cookie(), wenn die automatische Anmeldung aktiviert ist (Standard).

Ein nicht authentifizierter Angreifer mit einer legitimen Wiederherstellungs-URL aus seiner eigenen Erinnerungs-E-Mail kann den CTR-Chiffretext per XOR-Manipulation so verändern, dass die eingebettete Warenkorb-ID zu einer Warenkorb-ID des Opfers wird (gleiche Länge wie die Quell-ID), die gefälschte URL ohne wcap_nonce öffnen und sich als das Opfer anmelden (einschließlich Administratoren, die einen Warenkorb abgebrochen haben).

Typische URL-Form (Pro):

GET /?wacp_action=checkout_link&[email protected]&validate=<token>

(wcap_action / wcal_action-Varianten existieren; Track-Link-URLs können zusätzliche Parameter wie c= enthalten.)


Anforderungen

cd CVE-2026-97657
pip install -r requirements.txt
  • Python 3.9+
  • Abhängigkeiten: requests, urllib3

Nutzungsübersicht

ModusZweckErforderliche Argumente
check (Standard)Liest die Plugin-readme.txt und meldet Version ≤ 10.8.0-t URL oder --list FILE
forgeErstellt lokal eine gefälschte Recovery-URL (kein HTTP)--recovery-link, --source-cart-id, --target-cart-id
exploitFälscht Token + HTTP GET + verifiziert WordPress-SessionWie bei forge

Empfohlener Workflow (autorisiertes Labor):

  1. Massen- oder einzelner check — Plugin-Slug + Version ≤ 10.8.0 bestätigen.
  2. forge — Cart-ID-Padding und URL-Form validieren, bevor Traffic gesendet wird.
  3. exploit — ein GET an die gefälschte Recovery-URL; Cookies + /wp-admin/ bestätigen.

Exploit/forge verwendet nicht -t / --list. Der Zielhost wird aus --recovery-link übernommen (Schema + Host).


Voraussetzungen (exploit / forge)

AnforderungWarum
Eine legitime Recovery-URLLiefert einen gültigen CTR-Nonce + Ciphertext und (üblicherweise) deine user_email / encrypt_key-Zeile in ac_sent_history
Plugin ≤ 10.8.0 mit aktiviertem Auto-Login (Standard)Gepatchte Builds oder deaktiviertes Auto-Login blockieren wp_set_auth_cookie()
Registrierter WordPress-Benutzer als Opfer mit einer abandoned-cart-ZeileDer Übernahmepfad meldet user_id aus ac_abandoned_cart_history an; reine Gast-Carts verwenden einen anderen Zweig
checkout_link-URL stark bevorzugtDer Klartext ist {abandoned_cart_id}&url=.... track_links-Tokens kodieren email_sent_id, nicht die Cart-ID — falscher ID-Typ bricht die Forge
Gleich lange IDsCTR-XOR-Malleabilität ändert nur Bytes 1:1; mit Nullen auffüllen (siehe unten)

--recovery-link beschaffen

  1. Auf dem Ziel-Shop als ein von dir kontrollierter Benutzer registrieren/einloggen.
  2. Produkte in den Warenkorb legen und den Checkout verlassen (abandon).
  3. Auf eine Erinnerungs-E-Mail warten (oder Cutoff-Timer in einem Labor verkürzen, das dir gehört).
  4. Die vollständige checkout_link aus der E-Mail kopieren (oder aus Webhooks / Plugin-Export, falls aktiviert).

Beispielhafte Pro-Formen (aus Herstellerdokumentation / Webhooks):

https://shop.example/?wacp_action=checkout_link&validate=<base64-token>
https://shop.example/?wacp_action=checkout_link&[email protected]&validate=<token>
https://shop.example/?wacp_action=track_links&[email protected]&validate=<token>&c=<coupon-token>

Fügen Sie die URL exakt wie in der E-Mail ein (einschließlich validate; die Reihenfolge der Query-Parameter spielt keine Rolle).

Abrufen von Warenkorb-Zeilen-IDs

QuelleFeld
WooCommerce Abandoned Cart → Cart details (Admin)Abandoned-Cart-ID (DB-Primärschlüssel)
Webhook-Payload (wcap_cart, checkout_link-Kontext)"id": "383" auf der Warenkorb-Ressource
MySQL (Lab)wp_ac_abandoned_cart_history.id (Pro-Tabellenpräfix kann abweichen)

--source-cart-id muss die ID innerhalb des Klartexts Ihres Tokens sein (Ihre Abandoned-Cart-Zeile). --target-cart-id ist die Zeile des Opfers in derselben Tabelle.

Nullauffüllung (gleiche Länge)

Der PoC lehnt unterschiedliche Längen ab. Füllen Sie beide IDs auf dieselbe Breite auf:

Quelle (Ihre)Ziel (Opfer)OK?
383001Ja (3 Zeichen)
03830001Ja (4 Zeichen)
3831Nein — führen Sie forge stattdessen mit 0383 / 0001 aus

CLI-Referenz

FlagModiBedeutung
-t, --targetcheckWordPress-Site-Root, z. B. https://shop.example.com
--list FILEcheckEine Site-URL pro Zeile; #-Kommentare werden ignoriert
--modeallecheck (Standard), forge, exploit
--recovery-link URLforge, exploitVollständige Wiederherstellungs-URL aus der Erinnerungs-E-Mail
--source-cart-idforge, exploitIhre Abandoned-Cart-Zeilen-ID (im Token-Klartext)
--target-cart-idforge, exploitAbandoned-Cart-Zeilen-ID des Opfers (gleiche String-Länge)
-j Ncheck (Liste)Parallele Worker (Standard 8)
--timeout SECcheck, exploitHTTP-Timeout (Standard 15)
--insecurecheck, exploitTLS-Zertifikatsprüfung deaktivieren
--jsonl FILEcheck, exploitEin JSON-Objekt pro Lauf anhängen
--vuln-list FILEcheckURLs mit Version ≤ 10.8.0 schreiben
-q, --quietalleWeniger Konsolenausgabe
--no-coloralleEinfaches Terminal

Exit-Codes

CodeWann
0Exploit: success: true; forge: immer; check: immer (einzelnes -t)
1Exploit: Login-/Admin-Verifizierung fehlgeschlagen
2Check-Listen-Lauf ohne -t-Semantik (informativ)

Check-Modus

python poc.py -t https://shop.example.com --mode check
python poc.py --list targets.example.txt --mode check -j 16 --vuln-list hits.txt --jsonl scan.jsonl

Probes:

  • /wp-content/plugins/woocommerce-abandon-cart-pro/readme.txt
  • Alternativer Slug woocommerce-abandoned-cart-pro

Tool herunterladen