
🔍 Utilizzo di WPScan: trovare le vulnerabilità di WordPress 2026
Avete aggiornato i plugin, configurato HTTPS e impostato un firewall. Il vostro sito sembra sicuro. Ma come fate a sapere se uno dei plugin installati non abbia una vulnerabilità che qualcuno sta sfruttando proprio ora?
Il controllo manuale incrociato con i database delle vulnerabilità richiede ore. WPScan lo fa in mezzo minuto: uno scanner di sicurezza open source per WordPress con interfaccia a riga di comando che, secondo le statistiche del proprio database, traccia oltre 73.000 vulnerabilità in core, plugin e temi. Di seguito: installazione, token API, scansione base e avanzata, brute force delle password.
💡 Panoramica rapida:
Installate WPScan via gem Ruby, Docker o Homebrew e aggiornate il database dei metadati con
wpscan --updateRegistrate un token API gratuito su wpscan.com: 25 richieste al giorno, senza token lo scanner non mostrerà i dati sulle vulnerabilità
Eseguite una scansione base:
wpscan --url https://your-site.com --api-token YOUR_TOKENVerificate plugin e temi vulnerabili con i flag
-e vpe-e vt, enumerate gli utenti con-e uPer il brute force delle password, preparate un file wordlist e passatelo con il flag
--passwords
Cos'è WPScan
WPScan, uno scanner di sicurezza per WordPress gratuito per uso non commerciale, è scritto in Ruby. La prima release è uscita a giugno 2011 e da allora lo strumento è diventato lo standard de facto per il pentesting di siti WordPress.
Lo scanner incrocia la versione installata di WordPress, i plugin attivi e i temi con il WordPress Vulnerability Database su wpscan.com, mantenuto da un team di specialisti di sicurezza. Secondo le statistiche del database, documenta oltre 73.000 vulnerabilità in core, plugin e temi. Ogni voce è verificata manualmente da un team dedicato di esperti WordPress. Dal 2023, WPScan è una CVE Numbering Authority e assegna direttamente numeri CVE alle vulnerabilità nell'ecosistema WordPress.
Oltre alle vulnerabilità, WPScan può enumerare i login utente tramite la REST API e i feed autore, fare brute force delle password a partire da un dizionario, trovare backup esposti di wp-config.php, dump di database e log degli errori aperti.
Una sfumatura importante sulla licenza: l'uso gratuito dello scanner CLI è consentito solo per scopi non commerciali. Le agenzie che scansionano siti di clienti necessitano di un abbonamento a pagamento. I termini sono descritti sul sito ufficiale di WPScan.
Installazione e aggiornamenti
WPScan è disponibile in tre modalità. Scegliete quella più adatta al vostro flusso di lavoro.
Gem Ruby, opzione universale per Linux, macOS e Windows con Ruby installato:
1 gem install wpscan
Docker, ambiente isolato senza dipendenze:
1 docker pull wpscanteam/wpscan
Esempio di esecuzione Docker:
1 docker run -it --rm wpscanteam/wpscan --url https://example.com -e u
Homebrew, per macOS:
1 brew install wpscanteam/tap/wpscan
Dopo l'installazione, aggiornate per prima cosa il database locale dei metadati. Contiene informazioni sulle ultime versioni di plugin e temi, senza di esso lo scanner non può determinare se la versione installata è obsoleta. Le informazioni sulle vulnerabilità vengono richieste separatamente via API in tempo reale.
1 wpscan --update
L'aggiornamento richiede pochi secondi. L'output mostrerà la versione di WPScan e la conferma che il database è aggiornato. Ripeti wpscan --update prima di ogni audit: gli sviluppatori rilasciano aggiornamenti dei metadati diverse volte a settimana.
Token API: la chiave per i dati sulle vulnerabilità
L'errore più comune tra i principianti: eseguire wpscan --url site.com senza un token e chiedersi perché lo scanner non segnali vulnerabilità. Senza token, WPScan opera in modalità "solo metadati". Segnalerà che un plugin non è aggiornato, ma non indicherà a quali CVE è associato.
Registrati su wpscan.com, è gratuito e richiede un minuto. Il piano gratuito offre 25 richieste API al giorno. Una scansione consuma 1 richiesta per la versione di WordPress, 1 richiesta per ogni plugin installato e 1 richiesta per ogni tema. Un tipico sito WordPress ha più di una dozzina di plugin installati, quindi il limite gratuito è sufficiente per una scansione completa al giorno.
Il token si passa con il flag --api-token a ogni esecuzione:
1 wpscan --url https://example.com --api-token YOUR_TOKEN
Per evitare di inserire il token in ogni comando, salvalo nel file di configurazione ~/.wpscan/scan.yml:
1 api_token: YOUR_TOKEN
Fatto questo, WPScan rileverà il token automaticamente.
Scansione base del sito
Comando minimo di audit:
1 wpscan --url https://example.com --api-token YOUR_TOKEN
Lo scanner determinerà la versione di WordPress, il tema attivo, rileverà i numeri di versione esposti e verificherà problemi di configurazione di base: accessibilità di wp-cron e readme.html, directory degli upload, possibilità di registrazione utenti.
L'output è strutturato con marcatori colorati: verde per i messaggi informativi, giallo per gli avvisi, rosso per le vulnerabilità trovate. Ogni vulnerabilità è accompagnata da un link alla scheda del database WPScan con la descrizione del vettore d'attacco, le versioni interessate e le raccomandazioni per la remediation.
La scansione base richiede in genere meno di un minuto. Il tempo esatto dipende dalla dimensione del sito e dalla velocità dell'hosting.
Individuare plugin vulnerabili
I plugin, il principale vettore d'attacco su WordPress. Secondo le statistiche WPScan, oltre il 90% delle vulnerabilità note risiede nei plugin. Il comando di verifica:
1 wpscan --url https://example.com -e vp --api-token YOUR_TOKEN
Il flag -e vp (enumerate vulnerable plugins) elenca solo i plugin con vulnerabilità note. Questa è la modalità più rapida e pratica: incrocia i plugin installati con il database e segnala solo quelli con problemi documentati.
Per impostazione predefinita, WPScan utilizza la modalità di rilevamento passivo, analizzando l'HTML della pagina senza richieste aggiuntive. Per ottenere la massima copertura a costo di un carico aggiuntivo sul server, passa alla modalità mista:
1 wpscan --url https://example.com -e vp --plugins-detection mixed --api-token YOUR_TOKEN
La modalità mixed applica prima l'analisi passiva, poi verifica in modo aggressivo i percorsi noti dei plugin per rilevare installazioni nascoste e inattive.
Se lo scanner ha trovato un plugin vulnerabile, aggiornalo all'ultima versione. Lo sviluppatore ha quasi certamente rilasciato una patch. Se non ci sono aggiornamenti e il plugin è abbandonato, rimuovilo e trova un'alternativa. Lasciare un plugin con una vulnerabilità nota su un sito in produzione è inaccettabile.
Individuare temi vulnerabili
I temi si verificano in modo analogo ai plugin:
1 wpscan --url https://example.com -e vt --api-token YOUR_TOKEN
Il flag -e vt (vulnerable themes) verifica il tema attivo e tutti i temi installati alla ricerca di vulnerabilità note. I temi vengono attaccati meno frequentemente dei plugin, ma le vulnerabilità esistono, specialmente nei temi con page builder e slider integrati.
La modalità di rilevamento predefinita per i temi è aggressiva, poiché l'analisi passiva spesso non rileva i temi inattivi. Se il server è debole e il carico è critico, limitati alla modalità passiva:
1 wpscan --url https://example.com -e vt --themes-detection passive --api-token YOUR_TOKEN
Quando viene trovato un tema vulnerabile, agisci con lo stesso principio: aggiorna o rimuovi. I temi child ereditano le vulnerabilità del tema parent, verificali entrambi.
Enumerazione utenti
Un attaccante che conosce i login degli utenti WordPress deve solo indovinare le password. WPScan mostra quali login sono visibili dall'esterno:
1 wpscan --url https://example.com -e u
Lo scanner itera gli ID utente ed estrae i login dalla REST API, dai feed autore (/author/name/) e da altri endpoint pubblici. Il risultato appare così:
1 [i] User(s) Identified: 2 [+] admin 3 [+] editor 4 [+] serg
Idealmente, non dovresti vedere alcun login. Se WPScan ha trovato utenti, adotta queste misure:
- Imposta un nome visualizzato diverso dal login nelle impostazioni del profilo.
- Disabilita la REST API per i visitatori non autorizzati tramite un plugin o
.htaccess. - Un firewall a livello DNS, come Sucuri o Cloudflare, bloccherà lo scanner prima che arrivi: vedrai un errore di timeout invece dell'elenco utenti.

Le versioni attuali di WordPress limitano l'enumerazione via REST API, ma temi e plugin possono aprire delle scappatoie. Affidarsi solo al core non è sufficiente.
Attacco a dizionario delle password
WPScan supporta attacchi a dizionario sulle password. Lo scanner tenta di autenticarsi come ciascun utente trovato con ogni password contenuta in un file di lista. L'operazione è onerosa in termini di risorse, ma il risultato vale lo sforzo: scoprirai se qualche amministratore sta usando qwerty123.
Prepara un file di testo con le password, una per riga, ed esegui:
1 wpscan --url https://example.com -e u --passwords /path/to/passwords.txt
Wordlist già pronte sono disponibili in Kali Linux (/usr/share/wordlists/) e in fonti aperte come il repository SecLists su GitHub. Per un controllo di base, un file con le 500-1000 password più comuni è sufficiente.
Il parametro --threads N controlla il numero di tentativi simultanei. Il valore predefinito è 5. Aumentarlo a 20-30 velocizza l'attacco ma genera un carico sensibile sul server e può far scattare le protezioni dell'hosting.
Prima di avviare un attacco a dizionario, fai un backup del sito e avvisa il provider di hosting: alcuni bloccano gli IP dopo molteplici tentativi di login falliti.
Funzionalità aggiuntive
WPScan può fare più di un semplice audit di plugin e utenti. Ecco alcuni scenari utili.
Trovare tutti i plugin, non solo quelli vulnerabili:
1 wpscan --url https://example.com -e ap --api-token YOUR_TOKEN
Il flag -e ap (all plugins) enumera tutti i plugin presenti nel database di WPScan. L'operazione richiede tempo. Da usare per audit completi, non per controlli di routine.
Rilevare backup e dump:
1 wpscan --url https://example.com -e cb,dbe
I flag cb (config backups) e dbe (database exports) cercano backup di wp-config.php e dump SQL accessibili pubblicamente, lasciati per errore dai plugin di backup. Un file del genere in accesso aperto è estremamente pericoloso: un attaccante ottiene le credenziali del database.
Scansione furtiva:
1 wpscan --url https://example.com --stealthy --api-token YOUR_TOKEN
Il flag --stealthy aggiunge ritardi casuali tra le richieste, mascherando l'attività dello scanner come comportamento di un visitatore normale. Utile se il server blocca in modo aggressivo le attività sospette.
Enumerazione dei file media:
1 wpscan --url https://example.com -e m1-100
Controlla gli ID dei file media nell'intervallo specificato. Aiuta a scoprire documenti riservati accessibili tramite link diretto e backup caricati al di fuori della libreria media.
Tutorial video completo su WPScan, dall'installazione agli scenari avanzati:
⁉️🤔 Domande frequenti
WPScan serve anche se Jetpack Protect o Wordfence sono già installati?
Sì, serve. I plugin di sicurezza lavorano dall'interno di WordPress e bloccano gli attacchi in tempo reale. WPScan guarda il sito dall'esterno, esattamente come un attaccante. Trova problemi che il plugin non vede: backup esposti, enumerazione utenti tramite vettori non standard, vulnerabilità in plugin inattivi ma non rimossi. Solo entrambi gli approcci insieme forniscono una vera difesa in profondità.
WPScan è sicuro per il mio sito? Non rischia di mandare in crash il server?
Lo scanner invia richieste HTTP standard, le stesse di un visitatore normale. In modalità passiva analizza solo l'HTML, senza carico aggiuntivo. La modalità aggressiva con enumerazione completa dei plugin (
-e ap) genera centinaia di richieste e può rallentare un hosting debole. Per i controlli regolari, usa-e vp,vt,u, sono poche decine di richieste, sicure per qualsiasi server.
La scansione può essere automatizzata?
Sì. Per gli sviluppatori, un cron job che esegue un container Docker una volta a settimana e invia un report via email funziona bene. Per tutti gli altri, il servizio WPScan.com scansiona automaticamente i siti a intervalli programmati e invia notifiche sulle nuove vulnerabilità. Frequenza ottimale: scansione completa una volta a settimana, controlli giornalieri sui componenti ad alta priorità. Per audit manuali, la CLI gratuita è sufficiente, per un monitoraggio continuo valuta una soluzione automatizzata.
Cosa fare se WPScan trova una vulnerabilità e non ci sono aggiornamenti?
Il plugin è stato abbandonato dallo sviluppatore. Algoritmo: (1) verifica se la vulnerabilità è sfruttata attivamente, la scheda nel database di WPScan contiene questa informazione; (2) se non ci sono attacchi e il plugin è critico per il business, limitane temporaneamente l'accesso via
.htaccesse pianifica la sostituzione; (3) se sono registrati attacchi, rimuovi subito il plugin. Un compromesso tra funzionalità e sicurezza qui è impossibile.
In cosa WPScan è diverso dagli altri scanner per WordPress?
WPScan è l'unico scanner con un database di ricerca sulle vulnerabilità dedicato che esiste da oltre dieci anni. Alternative come WPSeku enumerano i plugin da una lista statica senza schede CVE dettagliate. WPScan è supportato da Automattic tramite una partnership con Jetpack, il che garantisce lo sviluppo del progetto a lungo termine.
Cosa scegliere: CLI, Docker o SaaS
La scelta dipende dalle tue esigenze. Riepilogo rapido:
Opzione | Per chi | Frequenza | Vantaggio |
|---|---|---|---|
Docker | Un sito, audit una tantum | Una volta al mese | Nessuna dipendenza |
Gemma Ruby + cron | Più siti | Settimanale | Report flessibili |
WPScan SaaS | Agenzia, 10+ siti | Continuo | Notifiche, dashboard |
- Se hai un sito e ti serve un controllo una tantum, usa Docker: un comando, zero dipendenze.
- Se hai più di dieci siti e ti servono report regolari, la gemma Ruby in un cron job farà al caso tuo.
- Se sei un'agenzia con un centinaio di siti clienti, un abbonamento WPScan SaaS ti toglierà il pensiero del monitoraggio.
Non dimenticare il token API, senza vedi solo metà del quadro. Inizia con i tre comandi del blocco «Panoramica rapida» qui sopra. Mezzo minuto e saprai esattamente se il sito ha vulnerabilità aperte. Quale strumento di sicurezza ti è stato utile nella pratica, scrivilo nei commenti.



