Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-97657 — أداة إثبات مفهوم بلغة Python للثغرة CVE-2026-97657: تزوير رموز استرداد AES-CTR عبر قابلية التعديل XOR لتجاوز المصادقة والاستيلاء على حسابات WordPress في Abandoned Cart Pro ≤10.8.0. | Kitploit
أدوات/GitHubGitHub/murrez/cve-2026-97657
تصعيد الامتيازاتماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبالتشفيرالمصادقة
GitHubmurrez/cve-2026-97657

CVE-2026-97657

أداة إثبات مفهوم بلغة Python للثغرة CVE-2026-97657: تزوير رموز استرداد AES-CTR عبر قابلية التعديل XOR لتجاوز المصادقة والاستيلاء على حسابات WordPress في Abandoned Cart Pro ≤10.8.0.

1منذ 23 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع

CVE-2026-97657 — تجاوز المصادقة في Abandoned Cart Pro for WooCommerce

إثبات مفهوم (PoC) بلغة Python 3 لـ CVE-2026-97657 — 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 حرج
علامة التحققPOCBIT-97657-OK (فحص الجلسة/المسؤول)
PoCbithttps://pocbit.org/pocs/cve-2026-97657

الوصف

تستخدم روابط الاستعادة رموز AES-CTR خالية من MAC (تخطيط متوافق مع Wcal_Aes_Ctr: nonce خاص بـ CTR بحجم 8 بايت + النص المشفّر، بترميز base64). يقوم الإضافة بتحميل encrypt_key الخاص بكل بريد إلكتروني من معامل الاستعلام user_email الذي يتحكم به المهاجم. في الدالة wcap_email_track_links() (نسخة Pro؛ النظير في Lite هو wcal_email_track_links())، يتم تنفيذ فحص wcap_nonce / HMAC فقط عندما يكون wcap_nonce غير فارغ، لذا فإن حذفه يتجاوز التحقق من السلامة. بعد فك التشفير، يُستخدم abandoned_id (معرّف صف السلة) دون إثبات أنه ينتمي إلى ذلك البريد الإلكتروني، ثم يُنفَّذ wp_set_auth_cookie() عند تفعيل تسجيل الدخول التلقائي (وهو الوضع الافتراضي).

يمكن لمهاجم غير مُصادَق يمتلك رابط استعادة شرعي واحد من رسالة التذكير الخاصة به أن يقوم بـ تعديل XOR على النص المشفّر بـ CTR لتغيير معرّف السلة المضمّن إلى معرّف السلة المتروكة الخاص بالضحية (بنفس طول المعرّف المصدر)، ثم يفتح الرابط المزوّر دون wcap_nonce، ويسجّل الدخول بصفة الضحية (بما في ذلك المسؤولون الذين تركوا سلة).

الشكل النموذجي للرابط (Pro):

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

(توجد متغيرات wcap_action / wcal_action؛ قد تتضمن عناوين 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بناء رابط استرداد مُزوَّر محليًا (بدون HTTP)--recovery-link، --source-cart-id، --target-cart-id
exploitتزوير الرمز + طلب HTTP GET + التحقق من جلسة WordPressنفس forge

سير العمل الموصى به (مختبر مُصرَّح به):

  1. check جماعي أو فردي — تأكيد slug الإضافة + الإصدار ≤ 10.8.0.
  2. forge — التحقق من حشو معرّف السلة وشكل الرابط قبل إرسال أي حركة مرور.
  3. exploit — طلب GET واحد إلى رابط الاسترداد المُزوَّر؛ تأكيد ملفات تعريف الارتباط + /wp-admin/.

لا يستخدم exploit/forge الوسيطتين -t / --list. يُؤخذ المضيف الهدف من --recovery-link (المخطط + المضيف).


المتطلبات المسبقة (exploit / forge)

المتطلبالسبب
رابط استرداد شرعي واحديوفّر nonce صالحًا لـ CTR + ciphertext و(عادةً) صف user_email / encrypt_key الخاص بك في ac_sent_history
الإضافة ≤ 10.8.0 مع تفعيل auto-login (الافتراضي)البِنى المُرقَّعة أو auto-login المعطّل تحجب wp_set_auth_cookie()
مستخدم WordPress مسجَّل كضحية مع صف سلة مهجورةمسار الاستيلاء يسجّل الدخول باستخدام user_id من ac_abandoned_cart_history؛ سلال الزوار الصرف تستخدم فرعًا مختلفًا
تفضيل رابط checkout_link بشدةالنص الصريح هو {abandoned_cart_id}&url=.... رموز track_links تُشفّر email_sent_id، وليس معرّف السلة — نوع المعرّف الخاطئ يُفسد عملية التزوير
معرّفات متساوية الطولقابلية XOR في CTR للتحوير تقلب البايتات بنسبة 1:1 فقط؛ احشُ بالأصفار (انظر أدناه)

الحصول على --recovery-link

  1. على المتجر الهدف، سجّل/ادخل كمستخدم تتحكم به.
  2. أضف منتجات إلى السلة واترك الدفع (اهجرها).
  3. انتظر بريدًا تذكيريًا (أو قصّر مؤقتات cutoff في مختبر تملكه).
  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؛ ترتيب معاملات الاستعلام لا يهم).

الحصول على معرّفات صفوف السلة

المصدرالحقل
WooCommerce Abandoned Cart → Cart details (المشرف)معرّف السلة المتروكة (المفتاح الأساسي في قاعدة البيانات)
حمولة Webhook (سياق wcap_cart، checkout_link)"id": "383" على مورد السلة
MySQL (المختبر)wp_ac_abandoned_cart_history.id (قد تختلف بادئة جدول Pro)

يجب أن يكون --source-cart-id هو المعرّف الموجود داخل النص الصريح لرمزك المميز (صف السلة المتروكة الخاص بك). أما --target-cart-id فهو صف الضحية في الجدول نفسه.

الحشو بالأصفار (الطول نفسه)

يرفض PoC الأطوال غير المتطابقة. احشُ كلا المعرّفين إلى العرض نفسه:

المصدر (الخاص بك)الهدف (الضحية)مقبول؟
383001نعم (3 أحرف)
03830001نعم (4 أحرف)
3831لا — شغّل forge باستخدام 0383 / 0001 بدلاً من ذلك

مرجع CLI

العلامةالأوضاعالمعنى
-t، --targetcheckجذر موقع WordPress، مثل https://shop.example.com
--list FILEcheckعنوان URL واحد للموقع في كل سطر؛ يتم تجاهل تعليقات #
--modeallcheck (افتراضي)، forge، exploit
--recovery-link URLforge، exploitعنوان URL الكامل للاسترداد من بريد التذكير الإلكتروني
--source-cart-idforge، exploitمعرّف صف السلة المتروكة الخاص بك (في النص الصريح للرمز المميز)
--target-cart-idforge، exploitمعرّف صف السلة المتروكة للضحية (طول السلسلة نفسه)
-j Ncheck (list)عمال متوازون (افتراضي 8)
--timeout SECcheck، exploitمهلة HTTP (افتراضي 15)
--insecurecheck، exploitتعطيل التحقق من شهادة TLS
--jsonl FILEcheck، exploitإلحاق كائن JSON واحد لكل تشغيل
--vuln-list FILEcheckكتابة عناوين URL ذات الإصدار ≤ 10.8.0
-q، --quietallإخراج أقل على الطرفية
--no-colorallطرفية عادية

رموز الخروج

الرمزمتى
0Exploit: success: true؛ forge: دائمًا؛ check: دائمًا (-t مفرد)
1Exploit: فشل التحقق من تسجيل الدخول/المشرف
2تشغيل قائمة check دون دلالات -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 (لاحقة HMAC منزوعة من validate، ومعاملات nonce محذوفة).

كما يزيل PoC المعاملين wcap_nonce / wcal_nonce من سلسلة الاستعلام إذا كانا موجودين في الرابط الأصلي.


وضع الاستغلال (--mode exploit)

ينفّذ تزوير رمز محلي ثم طلب HTTP GET واحد غير مُصادَق (مع متابعة إعادة التوجيه). لا تُرسَل أي بيانات اعتماد WordPress.

تنزيل الأداة