Vai al contenuto

Prossima edizione

Torna al blog

Tutorial Burp Suite: trova le vulnerabilità web passo dopo passo

Interfaccia di Burp Suite che mostra richieste HTTP intercettate accanto a un pannello di test di sicurezza delle applicazioni web

Impara Burp Suite da zero. Configura il proxy, intercetta le richieste e trova XSS e SQL injection nelle applicazioni web usando Burp Community Edition con DVWA.

Daute Delgado
15 min di lettura
  • Offense
  • Pentesting
  • Skills
  • Detection
  • Confidence
Condividi questo articolo:

TL;DR

Burp Suite è lo strumento di test di sicurezza delle applicazioni web più utilizzato, adottato da oltre 70.000 organizzazioni nel mondo. Questa guida accompagna i principianti attraverso l'intero flusso di lavoro: installare Burp Community Edition, configurare il proxy del browser, intercettare e modificare richieste HTTP, esplorare un'applicazione web e usare Repeater e Intruder per trovare SQL injection e cross site scripting in DVWA. Nessuna esperienza precedente in pentesting richiesta.

La pagina di login sembrava normale. Un semplice modulo con due campi, un pulsante di invio, niente di insolito. Ma quando Carla, una pentester junior al suo primo incarico con un cliente, ha digitato un singolo apostrofo nel campo del nome utente e ha cliccato su invia, l'applicazione ha risposto con un messaggio di errore completo del database. Nomi di tabelle, riferimenti di colonne, la query SQL stessa, tutto visualizzato sullo schermo in testo leggibile. Aveva trovato una vulnerabilità di SQL injection in meno di trenta secondi, non perché fosse un genio, ma perché sapeva come usare Burp Suite.

Quella scoperta ha cambiato l'intero incarico. La SQL injection ha portato all'estrazione completa del database, che ha rivelato password memorizzate in chiaro, dandole accesso al pannello di amministrazione. Un apostrofo. Uno strumento. Un compromesso completo documentato nel suo report prima di pranzo.

Burp Suite è lo strumento che ha reso tutto possibile. Non automatizzando tutto, ma dando a Carla visibilità completa su ogni richiesta e risposta HTTP che fluiva tra il browser e l'applicazione. Poteva vedere cosa faceva l'applicazione, modificare ciò che riceveva e testare come rispondeva. Quella visibilità è ciò che separa qualcuno che clicca bottoni da qualcuno che trova vulnerabilità.

Cos'è Burp Suite e perché è importante

Burp Suite, sviluppato da PortSwigger, è una piattaforma integrata per il test di sicurezza delle applicazioni web. Funziona come un proxy che si posiziona tra il tuo browser e l'applicazione web target, catturando ogni richiesta e risposta per l'ispezione e la manipolazione. Pensalo come un microscopio di sicurezza per il traffico HTTP.

Lo strumento è importante perché le applicazioni web sono la superficie di attacco principale per la maggior parte delle organizzazioni. Secondo OWASP, le vulnerabilità di injection incluse SQL injection e cross site scripting figurano tra i 10 principali rischi di sicurezza delle applicazioni web ogni anno dalla prima pubblicazione della lista nel 2003. Il costo medio di una violazione dei dati causata da una vulnerabilità delle applicazioni web ha raggiunto 4,88 milioni di USD nel 2024 secondo il report annuale di IBM. Trovare queste vulnerabilità prima degli attaccanti non è facoltativo. È il lavoro principale dei pentester di applicazioni web.

Burp Suite Community Edition è gratuita e include tutto ciò che serve per iniziare: il Proxy per intercettare il traffico, Repeater per reinviare manualmente richieste modificate, Intruder per la consegna automatizzata di payload (con limite di velocità nella versione gratuita), Decoder per codificare e decodificare dati, e Comparer per individuare differenze tra le risposte. Oltre il 60% degli annunci di lavoro per test di penetrazione elenca Burp Suite come competenza richiesta o preferita. Impararlo non è solo educativo. È un investimento professionale.

Installare Burp Suite Community Edition

Burp Suite funziona su Windows, macOS e Linux. Richiede Java, ma l'installer include il proprio runtime Java, quindi non devi installare nulla separatamente.

Scarica la Community Edition dalla pagina di download ufficiale di PortSwigger. Scegli l'installer per il tuo sistema operativo. Su Linux, il download è uno script shell:

bash
chmod +x burpsuite_community_linux_v2024_x_x.sh
./burpsuite_community_linux_v2024_x_x.sh

Su macOS, apri il file .dmg e trascina Burp Suite nella cartella Applicazioni. Su Windows, esegui l'installer .exe e segui le istruzioni.

Avvia Burp Suite e seleziona "Temporary Project" (l'unica opzione nella Community Edition). Nella schermata successiva, seleziona "Use Burp defaults" e clicca "Start Burp". L'interfaccia principale si carica con le schede in alto: Dashboard, Target, Proxy, Intruder, Repeater e altro. La scheda Proxy è dove passerai la maggior parte del tempo come principiante.

Configurare il proxy del browser

Burp Suite funziona intercettando il traffico HTTP tra il tuo browser e l'applicazione target. Per farlo, devi configurare il browser per instradare il traffico attraverso il listener del proxy di Burp.

Per impostazione predefinita, Burp ascolta su 127.0.0.1:8080. Puoi verificarlo nella scheda Proxy sotto "Proxy settings". Il listener dovrebbe apparire come attivo.

L'approccio più semplice è usare il browser Chromium integrato di Burp. Clicca "Open browser" nella scheda Proxy, e Burp avvia un browser preconfigurato che instrada già il traffico attraverso il proxy. Questo evita qualsiasi configurazione del proxy di sistema e mantiene i tuoi test isolati dalla navigazione abituale.

Se preferisci Firefox, installa l'estensione FoxyProxy. Crea una nuova voce proxy con le seguenti impostazioni:

  • Tipo di proxy: HTTP
  • IP del proxy: 127.0.0.1
  • Porta: 8080

Attiva il proxy in FoxyProxy, poi naviga verso http://burpsuite in Firefox. Questo carica la pagina di download del certificato CA di Burp. Scarica il certificato, poi importalo in Firefox tramite Impostazioni, Privacy e sicurezza, Visualizza certificati, Importa. Questo passaggio è essenziale. Senza il certificato CA installato, le connessioni HTTPS mostreranno avvisi di sicurezza perché Burp esegue un'intercettazione man in the middle per decrittare il traffico TLS per l'ispezione.

Una volta configurato, ogni richiesta HTTP e HTTPS dal tuo browser passa attraverso Burp Suite. Vedrai il traffico apparire nella cronologia HTTP della scheda Proxy immediatamente.

Intercettare e modificare le richieste

La scheda Proxy è il cuore di Burp Suite. Ha due modalità: intercettazione attiva e intercettazione disattivata. Quando l'intercettazione è attiva, Burp mette in pausa ogni richiesta prima che raggiunga il server, permettendoti di ispezionarla e modificarla. Quando l'intercettazione è disattivata, il traffico scorre normalmente ma viene comunque registrato nella cronologia HTTP.

Inizia con l'intercettazione disattivata. Naviga verso la tua istanza DVWA nel browser, accedi e naviga nell'applicazione. Passa alla scheda Proxy e clicca "HTTP history". Vedrai ogni richiesta elencata con metodo, URL, codice di stato, lunghezza e tipo MIME. Clicca su qualsiasi richiesta per vedere gli header e il body completi nel pannello inferiore. Clicca sulla scheda "Response" per vedere cosa ha risposto il server.

Ora attiva l'intercettazione. Naviga alla pagina SQL Injection di DVWA e digita admin nel campo User ID. Clicca Submit. Invece di caricare la pagina, Burp cattura la richiesta e la mostra nella scheda Intercept. Puoi vedere la richiesta GET o POST completa, inclusi parametri, cookie e header.

Qui iniziano i test. Modifica il parametro id da admin a 1' OR '1'='1 e clicca "Forward". La richiesta modificata raggiunge il server, e la risposta appare nel tuo browser. Se l'applicazione è vulnerabile, restituisce dati che non dovrebbe, perché hai alterato la query che l'applicazione ha eseguito contro il suo database.

code
GET /vulnerabilities/sqli/?id=1'+OR+'1'%3d'1&Submit=Submit HTTP/1.1
Host: localhost
Cookie: PHPSESSID=abc123; security=low

Quella singola richiesta modificata dimostra il flusso di lavoro principale dei test di sicurezza delle applicazioni web: intercettare, analizzare, modificare, inoltrare, osservare. Ogni vulnerabilità che troverai con Burp segue questo schema.

Usare Spider e Crawler

Prima di testare singole pagine, hai bisogno di una mappa dell'intera applicazione. La scheda Target di Burp costruisce questa mappa mentre navighi, mostrando ogni host, directory e file che l'applicazione referenzia. Ma la navigazione manuale non raggiunge tutte le pagine. Il crawler automatizza la scoperta.

Nella scheda Target, fai clic destro sull'host target e seleziona "Crawl" (nella Community Edition, disponibile tramite la scheda Dashboard sotto "New scan" con "Crawl" selezionato). Il crawler segue ogni link, invia moduli con dati di test e mappa la struttura dell'applicazione. Scopre pagine, parametri ed endpoint che potresti non trovare mai manualmente.

Una volta completata l'esplorazione, la mappa del sito in Target mostra l'albero completo dell'applicazione. Le directory si espandono per mostrare i file. Ogni file mostra quali parametri accetta. Questa mappa diventa la tua checklist di test: ogni parametro è un potenziale punto di injection, ogni modulo è una superficie da sondare.

Esamina la mappa del sito con la mentalità di un attaccante. Cerca pagine che accettano input dell'utente: moduli di ricerca, pagine di login, campi commenti, endpoint di upload file, parametri URL. Queste sono le posizioni dove la SQL injection, il cross site scripting e altri attacchi di injection hanno più probabilità di riuscire.

Repeater: test manuali delle richieste

Repeater è lo strumento che userai di più dopo Proxy. Ti permette di inviare una richiesta al server, vedere la risposta, modificare la richiesta e inviarla di nuovo, quante volte vuoi. Nessuna interazione col browser. Solo la richiesta e la risposta HTTP grezze, fianco a fianco.

Per inviare una richiesta a Repeater, fai clic destro nella cronologia HTTP del Proxy e seleziona "Send to Repeater". Passa alla scheda Repeater. La richiesta appare nel pannello sinistro. Clicca "Send" e la risposta appare nel pannello destro.

Ecco come testare la SQL injection con Repeater su un target DVWA. Inizia con la richiesta catturata dalla pagina SQL Injection:

code
GET /vulnerabilities/sqli/?id=1&Submit=Submit HTTP/1.1
Host: localhost
Cookie: PHPSESSID=abc123; security=low

Modifica il parametro id per inviare un singolo apostrofo: id=1'. Clicca Send. Se la risposta contiene un messaggio di errore del database come "You have an error in your SQL syntax", il parametro è iniettabile. L'applicazione sta concatenando il tuo input direttamente in una query SQL senza sanificazione.

Ora scala. Cambia il parametro in id=1' UNION SELECT user, password FROM users--. Invia. Se la risposta include nomi utente e hash delle password dal database, hai confermato una SQL injection basata su UNION che estrae dati da tabelle arbitrarie.

Repeater eccelle in questi test iterativi. Ogni modifica si costruisce sulla precedente. Inizi con una sonda (l'apostrofo), confermi la vulnerabilità (il messaggio di errore), poi scali all'exploitation completa (la query UNION). Documenta ogni passo. Il tuo report di pentest deve mostrare le richieste e risposte esatte che dimostrano la vulnerabilità.

Intruder: consegna automatizzata di payload

Intruder automatizza il processo di invio di molte variazioni di una richiesta, ciascuna con un payload diverso. È essenziale per test di forza bruta, fuzzing di parametri e scansione di vulnerabilità su più punti di input. Nella Community Edition, Intruder ha un limite di velocità ma resta funzionale per l'apprendimento.

Per usare Intruder, fai clic destro su una richiesta in Proxy o Repeater e seleziona "Send to Intruder". La scheda Intruder ha quattro sotto-schede: Positions, Payloads, Settings e Results.

Nella scheda Positions, Burp evidenzia i parametri che pensa tu voglia testare. Cancella tutte le posizioni con il pulsante "Clear", poi seleziona il valore specifico che vuoi testare e clicca "Add". Ad esempio, evidenzia il valore del parametro id. Il tipo di attacco "Sniper" invia un payload alla volta alla posizione marcata, che è ciò che serve per la maggior parte dei test.

Passa alla scheda Payloads. Sotto "Payload settings", aggiungi le tue stringhe di test. Per test XSS, aggiungi payload come:

code
<script>alert(1)</script>
<img src=x onerror=alert(1)>
"><script>alert(1)</script>
<svg onload=alert(1)>
'"><img src=x onerror=alert(1)>

Per SQL injection, aggiungi:

code
' OR '1'='1
' UNION SELECT NULL--
' AND 1=1--
' AND 1=2--
1; DROP TABLE users--

Clicca "Start attack". Intruder invia ogni payload e mostra le risposte in una tabella dei risultati. Ordina per lunghezza della risposta o codice di stato per individuare anomalie. Una risposta significativamente più lunga o più corta delle altre suggerisce che il payload ha innescato un comportamento diverso, il che spesso indica una vulnerabilità.

Per il rilevamento XSS, cerca le stringhe dei payload nei corpi delle risposte. Se <script>alert(1)</script> appare non codificato nella risposta HTML, l'applicazione è vulnerabile al cross site scripting riflesso. Il browser eseguirà quello script quando una vittima visiterà l'URL manipolato.

Trovare XSS e SQL injection in DVWA

DVWA fornisce vulnerabilità intenzionali a quattro livelli di sicurezza: low, medium, high e impossible. Inizia a low e procedi verso l'alto. Ogni livello aggiunge validazione dell'input che devi aggirare, insegnandoti come le applicazioni reali tentano (e falliscono nel) prevenire gli attacchi.

SQL injection a sicurezza low

Naviga alla pagina SQL Injection. Imposta la sicurezza DVWA su "low" nella pagina DVWA Security settings. Digita 1 nel campo User ID, invia e cattura la richiesta in Burp. Inviala a Repeater.

Testa il parametro id con: 1' OR '1'='1. La risposta restituisce tutti gli utenti nel database invece del solo utente 1. La query SQL dell'applicazione assomiglia a SELECT * FROM users WHERE user_id = '1' OR '1'='1', e poiché '1'='1' è sempre vero, tutte le righe vengono restituite.

Scala con un attacco UNION: 1' UNION SELECT user, password FROM users--. La risposta ora include nomi utente e i loro hash di password MD5. Questo è un compromesso completo del database attraverso un singolo campo di input.

XSS riflesso a sicurezza low

Naviga alla pagina XSS (Reflected). Inserisci <script>alert(1)</script> nel campo del nome e invia. La pagina riflette il tuo input senza codifica, e lo script viene eseguito. In un'applicazione reale, un attaccante creerebbe un URL contenente questo payload e lo invierebbe a una vittima. Quando la vittima clicca sul link, lo script viene eseguito nella sua sessione del browser, potendo potenzialmente rubare cookie, token di sessione o credenziali.

In Repeater, testa variazioni che aggirano i filtri comuni:

code
<img src=x onerror=alert(document.cookie)>
<svg/onload=alert('XSS')>
<body onload=alert(1)>

Ogni payload riuscito dimostra un vettore diverso. Il gestore onerror si attiva quando il browser non riesce a caricare l'immagine inesistente. Il gestore onload si attiva quando l'elemento SVG viene renderizzato. Capire perché ciascuno funziona ti aiuta a trovare XSS in applicazioni che filtrano i tag <script> ma non rilevano i gestori di eventi.

Costruire il tuo flusso di lavoro per i test di sicurezza web

Con Proxy, Repeater e Intruder padroneggiati, hai un flusso di lavoro di test completo. Inizia ogni incarico allo stesso modo:

  1. Mappa l'applicazione. Naviga manualmente con il Proxy che cattura il traffico. Esegui il crawler. Esamina la mappa del sito in Target per identificare ogni punto di input, modulo, parametro ed endpoint API.

  2. Identifica i punti di injection. Ogni parametro che accetta input dell'utente è un candidato. Parametri URL, campi di moduli, header HTTP (specialmente cookie e referrer) e body di richieste JSON meritano di essere testati.

  3. Testa manualmente con Repeater. Invia payload di sondaggio a ogni punto di injection. Cerca messaggi di errore, comportamenti inattesi o input riflesso nelle risposte. Repeater ti dà la precisione per capire esattamente cosa fa l'applicazione con il tuo input.

  4. Automatizza con Intruder. Una volta identificato un parametro promettente, usa Intruder per inviare una lista completa di payload. Confronta lunghezze delle risposte e codici di stato per identificare quali payload hanno innescato vulnerabilità.

  5. Documenta tutto. Salva richieste e risposte per il tuo report. Il logging integrato di Burp cattura lo scambio HTTP completo. Ogni scoperta necessita della richiesta esatta che innesca la vulnerabilità e della risposta che ne dimostra l'esistenza.

Questo flusso di lavoro si applica a ogni applicazione web, da un semplice modulo di login a un'API complessa con centinaia di endpoint. Gli strumenti scalano con il target. Il tuo compito è essere metodico, coprendo ogni superficie prima di concludere il test.

Oltre le basi: PortSwigger Web Security Academy

Una volta a tuo agio con Proxy, Repeater e Intruder in DVWA, passa alla Web Security Academy di PortSwigger. È gratuita, creata dallo stesso team che sviluppa Burp Suite, e contiene oltre 200 laboratori pratici che coprono ogni classe principale di vulnerabilità web. Ogni laboratorio gira in un ambiente isolato e ti guida attraverso la tecnica di attacco esatta, dall'SQL injection di base agli attacchi avanzati di server side request forgery e deserializzazione.

L'Academy struttura l'apprendimento per tipo di vulnerabilità. Inizia con i laboratori di SQL injection, poi passa a XSS, poi bypass dell'autenticazione, poi controllo degli accessi. Ogni sezione si costruisce sui concetti della precedente. Quando avrai completato i laboratori di livello apprendista, avrai competenze pratiche che si trasferiscono direttamente agli incarichi reali.

Abbina l'Academy alla Guida ai test OWASP, che documenta la metodologia seguita dai pentester professionisti. La Guida ai test spiega cosa testare e perché. L'Academy ti insegna come testarlo usando Burp Suite. Insieme, costruiscono sia le conoscenze che la memoria muscolare che separano i principianti dai tester efficaci.

Cosa praticare dopo

Il percorso da principiante a tester competente di applicazioni web segue una progressione prevedibile. Dopo DVWA, configura applicazioni vulnerabili aggiuntive: WebGoat per vulnerabilità basate su Java, Juice Shop per un'applicazione single page moderna, e HackTheBox o TryHackMe per scenari realistici. Ogni target insegna schemi di vulnerabilità diversi e ti costringe ad adattare le tue tecniche.

Impara lo strumento Decoder per codificare e decodificare Base64, codifica URL, entità HTML e esadecimale. Molti payload necessitano di codifica per aggirare i firewall delle applicazioni web e i filtri di input. Impara Comparer per individuare differenze sottili tra le risposte che indicano un comportamento condizionale, che è la base della SQL injection cieca e degli attacchi di timing.

Considera di estendere Burp con estensioni della community dal BApp Store (scheda Extensions). L'estensione "Logger++" aggiunge logging avanzato. "Autorize" testa automaticamente le vulnerabilità del controllo degli accessi. "Param Miner" scopre parametri nascosti. Le estensioni moltiplicano la tua efficacia senza richiedere di costruire strumenti personalizzati da zero.

Carla, la pentester che ha trovato SQL injection in trenta secondi, non ha avuto fortuna. Ha seguito lo stesso flusso di lavoro che hai appena imparato: configurare il proxy, intercettare il traffico, testare i parametri sistematicamente e usare Repeater per confermare e scalare. L'apostrofo era deliberato. Lo strumento era pronto. L'unica variabile era la vulnerabilità dell'applicazione. Quando segui questo processo, trovare la tua prima vulnerabilità reale non è questione di se. È questione di quando.

Sull'Autore
Daute Delgado, Founder & Bootcamp Director at Unihackers
Daute Delgado

Fondatore di Unihackers

Un decennio a difendere compagnie aeree, SOC e organizzazioni internazionali

Daute ha fondato Unihackers dopo un decennio passato a difendere compagnie aeree, SOC gestiti e organizzazioni internazionali. È Associate C|CISO e voce ricorrente su IA e cybersecurity nei media internazionali. Silver Winner ai Cyber Security Excellence Awards 2021. Insegna come avrebbe voluto che insegnassero a lui: senza rumore, su quello che fanno davvero gli attaccanti, formando professionisti utili dal primo giorno.

Vedi profilo
Inizia il tuo percorso

Pronto ad iniziare la tua carriera nella cybersecurity?

Unisciti a centinaia di professionisti che sono passati alla cybersecurity con il nostro programma pratico.

Inizia il tuo percorso

Pronto ad iniziare la tua carriera nella cybersecurity?

Unisciti a centinaia di professionisti che sono passati alla cybersecurity con il nostro programma pratico.

Ore
360+
Posizioni UE aperte
300K+
Stipendio medio
$85K
Esplora il programma