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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-11391 — WordPress PPOM for WooCommerce Plugin <= 33.0.15 عرضة لحقن SQL | Kitploit
أدوات/GitHubGitHub/r3db34rdh4x/cve-2025-11391
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليم
GitHubr3db34rdh4x/cve-2025-11391

CVE-2025-11391

WordPress PPOM for WooCommerce Plugin <= 33.0.15 عرضة لحقن SQL

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ثغرة حقن SQL أعمى غير مصادق عليها في PPOM لـ 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                  # سكربت إثبات المفهوم بلغة بايثون.
    └── woocommerce-product-addon/  # الإصدار القابل للاستغلال من الإضافة (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. انشر المنتج. لاحظ معرف المنتج (Product ID) (مثلًا، 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 أو أحدث.
  • استخدام العبارات المُجهزة: يستخدم الإصدار المُصحَّح $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 ) );

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

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

تنزيل الأداة