
Scansiona WordPress Forminator alla ricerca della CVE-2026-15748 (RCE non autenticata). Rileva siti vulnerabili, esplora i moduli, estrae i nonce ed esegue test di upload sicuri.
Uno scanner di ricerca sulla sicurezza e valutazione delle vulnerabilità basato su Python per identificare installazioni WordPress che utilizzano il plugin Forminator e valutare l'esposizione correlata alla versione.
Solo per Scopi Educativi e Test Autorizzati
Esegui questo progetto solo contro sistemi di tua proprietà o per i quali hai esplicita autorizzazione alla valutazione.
CVE-2026-15748 è una vulnerabilità associata al plugin Forminator per WordPress.
Questo progetto fornisce uno scanner per la ricerca sulla sicurezza e i test autorizzati. Esegue una sequenza di controlli passivi e a livello applicativo per identificare WordPress, localizzare Forminator, determinare la versione installata quando possibile, ispezionare pagine e form rilevanti e riportare la valutazione risultante.
Lo scanner è pensato per aiutare i ricercatori di sicurezza a comprendere l'esposizione di ambienti WordPress autorizzati senza considerare il risultato di uno scanner come prova assoluta di sfruttabilità.
Lo scanner segue questo flusso di lavoro generale:
Target
|
v
Normalize URL
|
v
Detect WordPress
|
+---- not detected ----> NOT WORDPRESS
|
v
Crawl relevant pages
|
v
Detect Forminator
|
v
Detect Forminator version
|
v
Compare version
|
v
Inspect forms
|
v
Generate result
| Funzionalità | Descrizione |
|---|---|
| Rilevamento WordPress | Rileva se il target sembra utilizzare WordPress. |
| Rilevamento Forminator | Cerca indicatori del plugin Forminator. |
| Rilevamento versione | Tenta di identificare la versione di Forminator installata dalle fonti disponibili. |
| Verifica versione | Confronta la versione rilevata con il valore VULN_MAX configurato. |
| Scansione del sito web | Raccoglie pagine rilevanti e link interni per ulteriori ispezioni. |
| Rilevamento sitemap | Verifica le posizioni comuni delle sitemap di WordPress. |
| Rilevamento form | Cerca form ed elementi di form Forminator rilevanti. |
| Rilevamento nonce | Tenta di identificare un nonce di Forminator nei dati del form rilevati. |
| Multi-threading | Supporta l'elaborazione di più target in modo concorrente. |
| Gestione dei tentativi | Riprova le richieste fallite in base al limite configurato. |
| Ritardo tra richieste | Aggiunge un ritardo casuale configurabile tra le richieste. |
| Risultati dettagliati | Scrive i risultati della valutazione raccolti in un file di risultati dettagliato. |
requestspackagingurllib3Installa i pacchetti richiesti:
pip install requests packaging urllib3
Oppure:
python -m pip install requests packaging urllib3
Clona il repository:
git clone https://github.com/yora1928/cve-2026-15748.git
Entra nella directory del progetto:
cd cve-2026-15748
Installa le dipendenze:
pip install requests packaging urllib3
Verifica l'installazione di Python:
python --version
La configurazione dello scanner è definita direttamente nel codice sorgente:
TIMEOUT = 15
THREADS = 8
VULN_MAX = "1.56.1"
MAX_RETRIES = 3
DELAY_MIN = 1.0
DELAY_MAX = 2.5
CRAWL_DEPTH = 2
| Variabile | Predefinito | Descrizione |
|---|---|---|
TIMEOUT | 15 | Timeout delle richieste HTTP. |
THREADS | 8 | Numero di thread worker utilizzati per la scansione. |
VULN_MAX | 1.56.1 | Versione massima considerata affetta dalla valutazione di versione dello scanner. |
MAX_RETRIES | 3 | Numero massimo di tentativi di ripetizione per le richieste fallite. |
DELAY_MIN | 1.0 | Ritardo minimo tra le richieste. |
DELAY_MAX | 2.5 | Ritardo massimo tra le richieste. |
CRAWL_DEPTH | 2 | Profondità massima di crawling. |
I valori sopra riportati descrivono la configurazione attuale del codice sorgente dello scanner.
Lo scanner accetta un singolo URL di destinazione oppure un file di testo contenente più URL di destinazione.
python cve-2026-15748.py -u https://target.com
-u e --url specificano un singolo URL di destinazione.
Usa questa modalità quando esegui una valutazione contro un singolo ambiente autorizzato.
Crea un file come targets.txt:
https://target1.example
https://target2.example
https://target3.example
Poi esegui:
python cve-2026-15748.py -f targets.txt
-f e --file specificano la lista dei target.
Ogni riga non vuota viene trattata come un target.
La configurazione predefinita utilizza 8 thread.
Ad esempio:
python cve-2026-15748.py -f targets.txt -t 10
Oppure:
python cve-2026-15748.py -f targets.txt -t 5
-t modifica il numero di thread worker utilizzati dallo scanner.
Lo scanner fornisce anche una modalità opzionale --upload:
python cve-2026-15748.py -u https://lab.example.com --upload
Per più target autorizzati:
python cve-2026-15748.py -f authorized-targets.txt -t 5 --upload
Questa modalità può eseguire una richiesta POST/upload verso un endpoint Forminator quando vengono soddisfatte le condizioni rilevanti.
Usa --upload solo su sistemi in cui questo test è esplicitamente autorizzato.
| Comando | Scopo |
|---|---|
-u, --url | Scansiona un singolo URL di destinazione. |
-f, --file | Legge più destinazioni da un file. |
-t | Imposta il numero di thread di scansione. |
--upload | Abilita la modalità di test upload per una destinazione autorizzata. |
Destinazione singola:
python cve-2026-15748.py -u https://target.com
Obiettivi multipli:
python cve-2026-15748.py -f targets.txt
Più target con concorrenza personalizzata:
python cve-2026-15748.py -f targets.txt -t 10
Test di caricamento autorizzato in laboratorio:
python cve-2026-15748.py -u https://lab.example.com --upload
Lo scanner esegue diverse fasi durante un'analisi.
L'URL di destinazione viene normalizzato prima che vengano effettuate le richieste, in modo che i controlli successivi utilizzino un formato URL coerente.
Lo scanner verifica gli indicatori e gli endpoint comuni di WordPress, tra cui:
/wp-login.php
/wp-json
/xmlrpc.php
/wp-content
Cerca anche nelle risposte indicatori quali:
wp-content
wp-includes
Se WordPress non può essere identificato, lo scanner segnala:
[NOT WORDPRESS]
Lo scanner costruisce un elenco di pagine a partire da percorsi comuni, posizioni della sitemap e link interni scoperti dal target.
Esempi di percorsi verificati includono:
/contact
/kontak
/hubungi-kami
/form
/forms
/formulir
/upload
/unggah
/submit
/kirim
/gallery
/kontribusi
/daftar
/pendaftaran
/registration
/register
/file-upload
/submit-document
/unggah-berkas
/upload-file
Le posizioni comuni dei sitemap includono:
/sitemap.xml
/sitemap_index.xml
/wp-sitemap.xml
Il crawler è limitato da CRAWL_DEPTH.
Lo scanner cerca identificatori di Forminator come:
forminator-form-<ID>
Per i form rilevati, verifica la presenza di elementi rilevanti quali:
type="file"
e:
<select>
Tenta inoltre di ottenere:
form_id
nonce
dal form HTML.
Lo scanner tenta di determinare la versione di Forminator dalle informazioni esposte dal target.
Una fonte è un percorso di asset simile a: