
PoC Python che convalida l'escalation di privilegi non autenticata CVE-2025-6325 e l'RCE tramite upload arbitrario di file CVE-2025-6327 in King Addons for Elementor <= 51.1.36.
Strumento di ricerca e validazione per King Addons for Elementor <= 51.1.36, che copre due vulnerabilità documentate:
Solo per test di sicurezza autorizzati, ricerca sulle vulnerabilità e ambienti di laboratorio controllati.
Questo progetto fornisce un PoC a duplice scopo per validare l'impatto sulla sicurezza di due vulnerabilità in King Addons for Elementor.
Escalation di privilegi non autenticata tramite la funzionalità di registrazione di King Addons.
Il flusso vulnerabile accetta un valore user_role controllato dal client e lo passa alla creazione dell'utente WordPress senza applicare un'appropriata allowlist dei ruoli.
Versione interessata: <= 51.1.36
Versione corretta: 51.1.37
Il flusso di registrazione vulnerabile utilizza:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
Il PoC verifica inoltre se l'account creato può autenticarsi e accedere alla pagina di amministrazione degli utenti di WordPress.
Caricamento arbitrario di file non autenticato tramite la funzionalità di upload del form builder di King Addons.
Il gestore di upload vulnerabile può accettare erroneamente un file PHP, con conseguente file caricato accessibile via web e potenziale esecuzione di codice lato server.
Versione interessata: <= 51.1.36
Versione corretta: 51.1.37
L'azione AJAX rilevante è:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
Il PoC convalida il flusso di upload e verifica se il file di test caricato può eseguire un comando id benigno.
Lo script supporta quattro modalità operative:
check
privesc
upload
both
Queste modalità sono esposte direttamente dall'interfaccia a riga di comando.
È richiesto Python 3.
Non sono richiesti pacchetti Python di terze parti.
Verifica la tua versione di Python:
python3 --version
Esegui entrambi i controlli di vulnerabilità:
python3 exploit.py -u http://target.local --exploit both
Individua i nonce di King Addons esposti senza eseguire le fasi di exploit:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
Crea un file di target:
http://target1.local
https://target2.local
http://target3.local
I commenti e le righe vuote vengono ignorati.
Esegui una valutazione passiva:
python3 exploit.py -l targets.txt --exploit check
Esegui entrambe le fasi di validazione:
python3 exploit.py -l targets.txt --exploit both -t 20
Esegui la validazione dell'upload:
python3 exploit.py -l targets.txt --exploit upload -t 20
Esegui la validazione dell'escalation di privilegi:
python3 exploit.py -l targets.txt --exploit privesc -t 20
Il PoC cerca automaticamente nelle pagine target i nonce richiesti dai due flussi vulnerabili.
Impostazioni predefinite del crawler:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
Queste impostazioni predefinite sono definite nella configurazione CLI dello script.
Esempio:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
Lo script utilizza per impostazione predefinita results.tsv per i risultati strutturati e loot.txt per le voci di validazione riuscite.
Durante l'esecuzione, lo strumento segnala diversi stati.
Indica che la validazione dell'upload è riuscita e che il file PHP di test ha risposto alla richiesta di verifica.
Esempio:
PWNED [SHELL]
Indica che la validazione dell'escalation di privilegi ha creato un account utilizzando il flusso di registrazione vulnerabile.
Lo strumento registra inoltre se l'account è stato verificato rispetto alla pagina di amministrazione degli utenti di WordPress.
L'account creato è stato autenticato con successo e confermato nella pagina degli utenti di WordPress.
La richiesta di registrazione è riuscita, ma il passo di verifica successivo non ha potuto confermare l'account risultante.
Non è stato ottenuto alcun risultato di validazione riuscito.
Il target ha prodotto un errore di rete, di parsing, di crawling o di altra esecuzione.
I risultati strutturati vengono scritti in formato TSV:
results.tsv
L'output contiene campi per:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
Questo formato è utile per importare i risultati in fogli di calcolo o per ulteriori elaborazioni.
Le voci di validazione riuscite vengono inoltre scritte in:
loot.txt
Lo script scrive i risultati della shell e della validazione dei privilegi come voci separate.
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
Il PoC invia specificamente:
user_role=administrator
all'endpoint di registrazione.
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
Il PoC utilizza un nome file di test generato in modo univoco e controlla l'URL di upload restituito.
L'implementazione della ricerca è stata testata su:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
Le note di ricerca riportano la validazione riuscita di entrambi i flussi in un ambiente di laboratorio controllato, inclusi l'escalation di privilegi e l'esecuzione della shell. È stato inoltre testato un controllo negativo sulla versione 51.1.37.
Le note di ricerca indicano che alcune release ZIP di WordPress.org per 51.1.35 e 51.1.36 sono state successivamente rietichettate con correzioni parziali.
L'implementazione vulnerabile è stata quindi confermata utilizzando il tag SVN di riferimento 51.1.14.
Se si riproduce la ricerca, utilizzare la versione esatta di laboratorio e il pacchetto identificato dalla ricerca, invece di presumere che ogni pacchetto etichettato 51.1.35 o 51.1.36 contenga codice vulnerabile identico.
Questo progetto è destinato a:
Testare solo sistemi per i quali si dispone di autorizzazione esplicita.
Non utilizzare questo progetto contro infrastrutture di terze parti senza autorizzazione.
L'autore non incoraggia l'accesso non autorizzato, la persistenza, il furto di dati o l'interruzione dei sistemi.
Questo software è fornito per scopi di ricerca sulla sicurezza e test autorizzati.
Sei responsabile di garantire che il tuo utilizzo di questo progetto sia conforme alle leggi, ai regolamenti, ai contratti e ai requisiti di autorizzazione applicabili.
L'autore e i contributori non si assumono alcuna responsabilità per uso improprio, danni, interruzione del servizio, perdita di dati o altre conseguenze derivanti da un uso non autorizzato.
JohenLastGen — JLG NETWORK
Research & Security Tooling
Telegram:
@johenlastgen
Canale:
@jlgnetworkredirect
Licenza MIT
Vedi LICENSE per il testo completo della licenza.
| Opzione | Descrizione |
|---|
-u, --url | Testa un singolo URL target |
-l, --list | File contenente gli URL dei target |
-e, --exploit | Seleziona check, privesc, upload o both |
-t, --threads | Numero di worker concorrenti |
--depth | Profondità massima dei link del crawler |
--max-pages | Numero massimo di pagine scansionate per target |
--timeout | Timeout delle richieste HTTP in secondi |
-o, --output | Output dei risultati in TSV |
--loot | Output delle validazioni riuscite |
--no-color | Disabilita i colori del terminale |