Come sfruttare una vulnerabilità del plugin WordPress: un caso di studio di TheCartPress | di Security Lit Limited | Codice
I plugin di WordPress sono essenziali per aggiungere funzionalità e caratteristiche al tuo sito web, ma possono anche introdurre rischi per la sicurezza se non vengono aggiornati o mantenuti correttamente. In questo post del blog, ti mostrerò come sfruttare una vulnerabilità di escalation dei privilegi nel plugin TheCartPress, che consente a un utente malintenzionato non autenticato di creare un account amministratore su qualsiasi sito WordPress che utilizza questo plugin.
TheCartPress è un plug-in WordPress che ti consente di creare un negozio online con varie funzionalità come gestione del prodotto, carrello della spesa, checkout, gateway di pagamento e altro ancora. Ha oltre 10.000 installazioni attive ed è compatibile con le versioni di WordPress fino alla 5.7.
Tuttavia, il plugin TheCartPress presenta una grave falla di sicurezza che è stata scoperta da Spacehen, un ricercatore di sicurezza che ha pubblicato un codice exploit il 4 ottobre 2021 1. La vulnerabilità è un’escalation di privilegi non autenticata che consente a un utente malintenzionato di creare un account amministratore sul sito di destinazione inviando una richiesta appositamente predisposta al file admin-ajax.php con il parametro di azione impostato su tcp_register_and_login_ajax.
Il codice exploit funziona inviando i seguenti dati al file admin-ajax.php:
data = {
"tcp_new_user_name" : "admin_02",
"tcp_new_user_pass" : "admin1234",
"tcp_repeat_user_pass" : "admin1234",
"tcp_new_user_email" : "test@test.com",
"tcp_role" : "administrator"
}
Il parametro tcp_role è la chiave di questa vulnerabilità, poiché consente all’aggressore di specificare qualsiasi ruolo desideri per il nuovo utente, incluso l’amministratore. Il plugin non controlla né convalida questo parametro prima di creare l’utente, quindi bypassa di fatto il sistema di autenticazione di WordPress.
Per trovare siti vulnerabili che utilizzano il plug-in TheCartPress, puoi utilizzare un dork di Google come:
inurl:/wp-content/plugins/thecartpress/