Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-11391 — إضافة WordPress PPOM for WooCommerce <= 33.0.15 معرّضة لثغرة حقن SQL (SQL Injection) | Kitploit
أدوات/GitHubGitHub/moritakaaz/cve-2025-11391
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالتعلم والتعليمأمن قواعد البيانات
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

إضافة WordPress PPOM for WooCommerce <= 33.0.15 معرّضة لثغرة حقن SQL (SQL Injection)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

حقن SQL أعمى بدون مصادقة في PPOM for WooCommerce <= 33.0.15

يحتوي هذا المستودع على إثبات مفهوم (PoC) لثغرة حقن SQL أعمى قائم على الوقت بدون مصادقة في إضافة "PPOM for WooCommerce" الخاصة بووردبريس، وتؤثر على الإصدارات حتى 33.0.15.

تفاصيل الثغرة

  • الإضافة: PPOM for WooCommerce
  • الإصدارات المتأثرة: <= 33.0.15
  • الإصدار المُصحَّح: 33.0.16
  • نوع الثغرة: حقن SQL أعمى قائم على الوقت بدون مصادقة
  • معرّف CVE: CVE-2025-11391 (مُخصص لأغراض التتبع)

الوصف

توجد الثغرة لأن الإضافة تفشل في تنظيف (تعقيم) المدخلات المقدمة من المستخدم بشكل صحيح قبل استخدامها في استعلام SQL. على وجه التحديد، تقوم دالة get_product_meta() في classes/plugin.class.php بربط معامل $meta_id مباشرةً في استعلام SQL دون استخدام عبارات مُجهزة مسبقاً (prepared statements).

الكود المعرّض للثغرة (classes/plugin.class.php):

root@kitploit:~
function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

يمكن لمهاجم غير مصادق استغلال ذلك من خلال صياغة حمولة خبيثة وحقنها في معامل ppom[fields][id] عند إضافة منتج إلى سلة التسوق. يتيح ذلك للمهاجم تنفيذ أوامر SQL عشوائية، مثل دوال تأخير الوقت (SLEEP())، مما يمكنه من تأكيد وجود الثغرة وربما استخراج معلومات حساسة من قاعدة البيانات حرفاً بحرف.

يتم تفعيل الثغرة عندما يكون خيار "Enable Legacy Price Calculations" مفعّلاً في إعدادات الإضافة، حيث يجبر ذلك التطبيق على استخدام مسار الكود المعرّض للثغرة أثناء عمليات سلة التسوق.

هيكل المستودع

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # The Python Proof of Concept script.
    └── woocommerce-product-addon/  # Vulnerable version of the plugin (v33.0.15).

خطوات الإعداد وإعادة الإنشاء

1. المتطلبات

  • بيئة خادم ويب محلية (مثل XAMPP أو WAMP أو MAMP).
  • تثبيت جديد لووردبريس.
  • إضافة WooCommerce مثبتة ومفعّلة.
  • بايثون 3.x مع تثبيت مكتبة requests (pip install requests).

2. إعداد البيئة المخبرية

  1. شغّل خادم الويب المحلي (Apache, MySQL).
  2. ثبّت ووردبريس في مجلد (مثل /htdocs/wp4hacking/).
  3. ثبّت وفعّل إضافة WooCommerce من لوحة تحكم ووردبريس.
  4. ثبّت الإصدار المعرّض للثغرة من woocommerce-product-addon (v33.0.15) المرفق في هذا المستودع عن طريق رفع ملف .zip من مجلد woocommerce-product-addon/.
  5. فعّل إضافة "PPOM for WooCommerce".

3. الإعداد المعرّض للثغرة

  1. في لوحة تحكم ووردبريس، انتقل إلى PPOM Fields > Settings.
  2. ابحث عن الخيار "Enable Legacy Price Calculations" وحدد المربع لتفعيله.
  3. احفظ التغييرات.
  4. انتقل إلى PPOM Fields وأنشئ مجموعة حقول جديدة (على سبيل المثال، سمّها "PoC Group").
  5. داخل هذه المجموعة، أضف حقلاً من نوع Text Input. أعطه عنواناً (مثل "SQL Injection") واسم بيانات (مثل sql_injection).
  6. انتقل إلى Products > Add New لإنشاء منتج WooCommerce جديد.
  7. أعطِ المنتج اسماً (مثل "Product Testing") وسعراً.
  8. في صفحة تحرير المنتج، ابحث عن تبويب "PPOM Fields" واختر "PoC Group" الذي أنشأته.
  9. انشر المنتج. لاحظ معرّف المنتج (على سبيل المثال: 72).

الاستغلال

يؤكد سكربت exploit.py المرفق وجود الثغرة عن طريق حقن أمر SLEEP() وقياس زمن استجابة الخادم.

كيفية تشغيل الاستغلال

  1. افتح ملف exploit.py وعدّل المتغيرات التالية:

    • PRODUCT_URL: الرابط الكامل لصفحة المنتج المعرّض للثغرة الذي أنشأته.
    • add_to_cart_data['add-to-cart']: معرّف منتجك المعرّض للثغرة.
  2. شغّل السكربت من الطرفية:

    root@kitploit:~
    python exploit.py
    

المخرجات المتوقعة

إذا كان الهدف معرّضاً للثغرة، فسيستغرق الخادم وقتاً أطول من مدة SLEEP() للاستجابة، مما يسبب انتهاء مهلة السكربت. يفسّر السكربت هذا الانتهاء بشكل صحيح على أنه استغلال ناجح.

root@kitploit:~
Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

التخفيف

  • حدّث فوراً: قم بترقية إضافة "PPOM for WooCommerce" إلى الإصدار 33.0.16 أو أحدث.
  • استخدم عبارات مُجهزة مسبقاً (Prepared Statements): يستخدم الإصدار المُصحَّح $wpdb->prepare() لتنظيف المدخلات بشكل صحيح، مما يمنع حقن SQL.

الكود المُصحَّح (classes/plugin.class.php):

root@kitploit:~
$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

إخلاء المسؤولية

إثبات المفهوم هذا مخصص للأغراض التعليمية والبحثية فقط. لا تستخدمه على أي نظام لا تملكه أو ليس لديك إذن صريح لاختباره. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر ناتج عن هذا السكربت.

تنزيل الأداة