Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-97657 — CVE-2026-97657 के लिए Python PoC: Abandoned Cart Pro ≤10.8.0 में XOR malleability के माध्यम से AES-CTR recovery tokens को forge करके authentication को bypass करना और WordPress accounts पर कब्ज़ा करना। | Kitploit
उपकरण/GitHubGitHub/murrez/cve-2026-97657
विशेषाधिकार वृद्धिभेद्यता स्कैनरभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षाक्रिप्टोग्राफीप्रमाणीकरण
GitHubmurrez/cve-2026-97657

CVE-2026-97657

CVE-2026-97657 के लिए Python PoC: Abandoned Cart Pro ≤10.8.0 में XOR malleability के माध्यम से AES-CTR recovery tokens को forge करके authentication को bypass करना और WordPress accounts पर कब्ज़ा करना।

122 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

CVE-2026-97657 — Abandoned Cart Pro for WooCommerce प्रमाणीकरण बायपास

CVE-2026-97657 के लिए Python 3 PoC — Abandoned Cart Pro for WooCommerce (Tyche Softwares) ≤ 10.8.0। CNA: Wordfence।

उत्पादAbandoned Cart Pro for WooCommerce
प्रभावित≤ 10.8.0 (10.8.0 से ऊपर के किसी निश्चित रिलीज़ में अपग्रेड करें)
CWECWE-639 — उपयोगकर्ता-नियंत्रित कुंजी के माध्यम से प्रमाणीकरण बायपास
CVSS 3.19.8 Critical
सत्यापन मार्करPOCBIT-97657-OK (सत्र/व्यवस्थापक जाँच)
PoCbithttps://pocbit.org/pocs/cve-2026-97657

विवरण

रिकवरी लिंक MAC-रहित AES-CTR टोकन का उपयोग करते हैं (Wcal_Aes_Ctr-संगत लेआउट: 8-बाइट CTR नॉनस + सिफरटेक्स्ट, base64)। प्लगइन हमलावर-नियंत्रित user_email क्वेरी पैरामीटर से प्रति-ईमेल encrypt_key लोड करता है। wcap_email_track_links() (Pro; Lite समकक्ष wcal_email_track_links()) में, wcap_nonce / HMAC जाँच केवल तब चलती है जब wcap_nonce गैर-रिक्त हो, इसलिए इसे छोड़ने से अखंडता सत्यापन छूट जाता है। डिक्रिप्शन के बाद, abandoned_id (कार्ट पंक्ति ID) का उपयोग यह सिद्ध किए बिना किया जाता है कि वह उस ईमेल से संबंधित है, फिर जब ऑटो-लॉगिन सक्षम हो (डिफ़ॉल्ट) तो wp_set_auth_cookie() चलता है।

अपने स्वयं के रिमाइंडर ईमेल से एक वैध रिकवरी URL रखने वाला एक अप्रमाणित हमलावर CTR सिफरटेक्स्ट को XOR-मैनिपुलेट करके एम्बेडेड कार्ट ID को पीड़ित के छोड़े गए कार्ट ID (स्रोत ID के समान लंबाई) में बदल सकता है, wcap_nonce के बिना नकली URL खोल सकता है, और पीड़ित के रूप में लॉग इन कर सकता है (जिसमें वे व्यवस्थापक भी शामिल हैं जिन्होंने कार्ट छोड़ा था)।

विशिष्ट URL स्वरूप (Pro):

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

(wcap_action / wcal_action वेरिएंट मौजूद हैं; track-links URL में c= जैसे अतिरिक्त पैरामीटर शामिल हो सकते हैं।)


आवश्यकताएँ

cd CVE-2026-97657
pip install -r requirements.txt
  • Python 3.9+
  • निर्भरताएँ: requests, urllib3

उपयोग का अवलोकन

मोडउद्देश्यआवश्यक आर्ग्युमेंट
check (डिफ़ॉल्ट)प्लगइन readme.txt पढ़ें, संस्करण ≤ 10.8.0 को चिह्नित करें-t URL या --list FILE
forgeस्थानीय रूप से फ़ोर्ज्ड रिकवरी URL बनाएँ (कोई HTTP नहीं)--recovery-link, --source-cart-id, --target-cart-id
exploitटोकन फ़ोर्ज करें + HTTP GET + WordPress सत्र सत्यापित करेंforge के समान

अनुशंसित कार्यप्रवाह (अधिकृत लैब):

  1. मास या एकल check — प्लगइन स्लग + संस्करण ≤ 10.8.0 की पुष्टि करें।
  2. forge — ट्रैफ़िक भेजने से पहले कार्ट ID पैडिंग और URL आकार को सत्यापित करें।
  3. exploit — फ़ोर्ज्ड रिकवरी URL पर एक GET; कुकीज़ + /wp-admin/ की पुष्टि करें।

Exploit/forge -t / --list का उपयोग नहीं करता। लक्ष्य होस्ट --recovery-link (स्कीम + होस्ट) से लिया जाता है।


पूर्वापेक्षाएँ (exploit / forge)

आवश्यकताक्यों
एक वैध रिकवरी URLएक मान्य CTR नॉन्स + सिफरटेक्स्ट और (आमतौर पर) ac_sent_history में आपकी user_email / encrypt_key पंक्ति प्रदान करता है
प्लगइन ≤ 10.8.0 जिसमें auto-login सक्षम हो (डिफ़ॉल्ट)पैच किए गए बिल्ड या अक्षम auto-login wp_set_auth_cookie() को अवरुद्ध करते हैं
पीड़ित पंजीकृत WordPress उपयोगकर्ता जिसके पास abandoned cart पंक्ति होटेकओवर पथ ac_abandoned_cart_history से user_id के रूप में लॉग इन करता है; शुद्ध गेस्ट कार्ट एक अलग शाखा का उपयोग करते हैं
checkout_link URL को दृढ़ता से प्राथमिकता दी जाती हैप्लेनटेक्स्ट {abandoned_cart_id}&url=... है। track_links टोकन email_sent_id को एन्कोड करते हैं, कार्ट ID को नहीं — गलत ID प्रकार forge को तोड़ देता है
समान-लंबाई वाली IDCTR XOR malleability केवल बाइट्स को 1:1 पलटती है; शून्य से पैड करें (नीचे देखें)

--recovery-link प्राप्त करना

  1. लक्ष्य शॉप पर, आपके नियंत्रण वाले उपयोगकर्ता के रूप में पंजीकरण/लॉगिन करें।
  2. कार्ट में उत्पाद जोड़ें और चेकआउट छोड़ दें (abandon)।
  3. रिमाइंडर ईमेल की प्रतीक्षा करें (या लैब में जिसका आप स्वामी हैं, कटऑफ टाइमर छोटा करें)।
  4. ईमेल से पूरा checkout_link कॉपी करें (या webhooks / प्लगइन एक्सपोर्ट से यदि सक्षम हो)।

उदाहरण Pro आकार (विक्रेता दस्तावेज़ / 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>

URL को ईमेल में बिल्कुल वैसे ही पेस्ट करें (जिसमें validate शामिल हो; क्वेरी का क्रम मायने नहीं रखता)।

कार्ट पंक्ति ID प्राप्त करना

स्रोतफ़ील्ड
WooCommerce Abandoned Cart → Cart details (एडमिन)Abandoned cart ID (DB प्राथमिक कुंजी)
Webhook पेलोड (wcap_cart, checkout_link संदर्भ)कार्ट संसाधन पर "id": "383"
MySQL (लैब)wp_ac_abandoned_cart_history.id (Pro तालिका उपसर्ग भिन्न हो सकता है)

--source-cart-id आपके टोकन के plaintext के अंदर वाली ID होनी चाहिए (आपकी abandoned cart पंक्ति)। --target-cart-id उसी तालिका में पीड़ित की पंक्ति है।

शून्य-पैडिंग (समान लंबाई)

PoC असमान लंबाइयों को अस्वीकार करता है। दोनों ID को समान चौड़ाई तक पैड करें:

स्रोत (आपका)लक्ष्य (पीड़ित)ठीक है?
383001हाँ (3 अक्षर)
03830001हाँ (4 अक्षर)
3831नहीं — इसके बजाय 0383 / 0001 के साथ forge चलाएँ

CLI संदर्भ

फ़्लैगमोडअर्थ
-t, --targetcheckWordPress साइट रूट, जैसे https://shop.example.com
--list FILEcheckप्रति पंक्ति एक साइट URL; # टिप्पणियाँ अनदेखी
--modeallcheck (डिफ़ॉल्ट), forge, exploit
--recovery-link URLforge, exploitरिमाइंडर ईमेल से पूर्ण recovery URL
--source-cart-idforge, exploitआपकी abandoned cart पंक्ति ID (टोकन plaintext में)
--target-cart-idforge, exploitपीड़ित की abandoned cart पंक्ति ID (समान स्ट्रिंग लंबाई)
-j Ncheck (list)समानांतर वर्कर (डिफ़ॉल्ट 8)
--timeout SECcheck, exploitHTTP टाइमआउट (डिफ़ॉल्ट 15)
--insecurecheck, exploitTLS प्रमाणपत्र सत्यापन अक्षम करें
--jsonl FILEcheck, exploitप्रति रन एक JSON ऑब्जेक्ट जोड़ें
--vuln-list FILEcheckसंस्करण ≤ 10.8.0 वाले URL लिखें
-q, --quietallकम कंसोल आउटपुट
--no-colorallसादा टर्मिनल

एग्ज़िट कोड

कोडकब
0Exploit: success: true; forge: हमेशा; check: हमेशा (एकल -t)
1Exploit: लॉगिन/एडमिन सत्यापन विफल
2Check सूची रन बिना -t सेमांटिक्स के (सूचनात्मक)

Check मोड

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

जाँच:

  • /wp-content/plugins/woocommerce-abandon-cart-pro/readme.txt
  • वैकल्पिक स्लग woocommerce-abandoned-cart-pro

Forge मोड (ऑफ़लाइन)

python poc.py --mode forge \
  --recovery-link "https://shop.example.com/?wacp_action=checkout_link&[email protected]&validate=..." \
  --source-cart-id "0383" \
  --target-cart-id "0001"

आउटपुट JSON में exploit_url शामिल होता है (validate से HMAC सफ़िक्स हटाया गया, nonce पैरामीटर हटाए गए)।

PoC मूल लिंक पर मौजूद होने पर क्वेरी से wcap_nonce / wcal_nonce को भी हटा देता है।


Exploit मोड (--mode exploit)

स्थानीय टोकन फ़ॉर्जरी करता है और फिर एकल unauthenticated HTTP GET (साथ में redirect follows) करता है। कोई WordPress क्रेडेंशियल नहीं भेजे जाते।

टूल डाउनलोड करें