Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2023-3460 — CVE-2023-3460 | Kitploit
Strumenti/GitHubGitHub/emadyay/cve-2023-3460
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingAutenticazione
GitHubemadyay/cve-2023-3460

CVE-2023-3460

CVE-2023-3460

Vedi Repository
3 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2023-3460 - Accesso admin non autorizzato per il plugin Ultimate Member POC

Punteggio CVSS: 9.1

Data: 07/04/2023

Cos'è il plugin Ultimate Member?

Il plugin Ultimate Member è un popolare plugin di membership per la registrazione degli utenti; il plugin ha oltre 200.000 installazioni attive.

Alt text

Controllo Rapido

Una vulnerabilità critica è stata scoperta nel plugin Ultimate Member il 7 luglio; un attaccante potrebbe creare un account amministratore usando una tecnica di escalation dei privilegi che può portare al controllo completo del sito WordPress.

Quindi come funziona l'exploit?

Beh, se diamo un'occhiata ai Ruoli e alle Capacità di WordPress, ci sono diversi ruoli che un utente può avere: , , , , , . Quindi come possiamo ottenere privilegi admin? Beh, prima vediamo come funziona il plugin Ultimate Member: per farlo funzionare correttamente, devi configurarlo, quindi dobbiamo creare alcune pagine nella sezione e poi collegarle a Ultimate Member > Impostazioni; dopo di che possiamo creare nuovi ruoli o usare semplicemente i ruoli predefiniti offerti da Ultimate Member.

Alt text

A questo punto dovremmo avere un plugin funzionante; ora sporchiamoci le mani e vediamo come funziona nel backend. Ho registrato un utente normale con ruolo Subscriber e se diamo un'occhiata alla tabella wp_usermeta in MySQL possiamo vedere che il valore wp_capabilities è impostato su un array serializzato e da lì definisce il nostro ruolo, che in questo caso è Subscriber.

Alt text

Quindi come possiamo cambiare il valore di wp_capabilities? Beh, possiamo passare wp_capabilities come parametro nella richiesta POST durante la registrazione, in questo modo:

Alt text

Ma non finisce qui: vedi, c'è una funzione chiamata is_metakey_banned che funziona controllando alcuni valori come "cap_key", "wp_capabilities", "wp_user_level", "user_activation_key" ecc... A noi interessa wp_capabilities, ma se la includiamo nel corpo della richiesta, il break scatta lì per impedirci di cambiare ruolo.

Alt text

Da qui in poi possiamo provare diversi tipi di decodifica, ma non funzionerà; dopo qualche ricerca e un po' di aiuto dall'AI, ho scoperto che WordPress accetta caratteri accentati di default, come à, è, ì, ò, ù, À, È, Ì, Ò, Ù. Quindi, se usiamo questi caratteri nel corpo della richiesta, ad esempio wp_càpabilities=administrator, cosa succede? Beh, non raggiunge il punto di interruzione alla riga 182 in class-user.php e possiamo bypassare la funzione is_metakey_banned.

Alt text

Controllando MySQL possiamo vedere che siamo riusciti a cambiare il valore.

Alt text

Ma non siamo admin; in effetti non abbiamo alcun ruolo.

Alt text

Abbiamo fatto qualcosa, ovviamente, ma per diventare admin dobbiamo avere lo stesso identico valore di un admin, che appare così: a:1:{s:13:"administrator";b:1;}. Ok, ora proviamo e passiamolo direttamente al nostro parametro.

Alt text

Controllando di nuovo MySQL, abbiamo impostato il valore di wp_capabilities, ma non è quello che ci aspettavamo.

Alt text

Ha preso il nostro valore e lo ha trasformato in una stringa serializzata, ma guardando wp_capabilities di un admin vediamo che è un array serializzato; è quello che vogliamo. WordPress ha la sua serializzazione, quindi possiamo usarla per passare il nostro valore come array e WordPress fa il resto per noi. Ecco come appare il nostro payload: wp_càpabilities[administrator]=1.

Alt text

Alla fine possiamo vedere che il valore di wp_capabilities è stato cambiato in a:1:{s:13:"administrator";s:1:"1";}, quindi ora possiamo accedere come admin.

Alt text

E ora possiamo accedere come admin.

Alt text

Scarica lo strumento
Super Admin
Administrator
Editor
Author
Contributor
Contributor
Pages