Please enable JavaScript.
Coggle requires JavaScript to display documents.
Progetto web sicuro vernero - Coggle Diagram
Progetto web sicuro vernero
1. OBIETTIVO DEL PROGETTO
Il progetto riguarda una vulnerabilità di SQL Injection presente in un'applicazione web per la gestione di un catalogo di film.
Il progetto mostra:
Versione vulnerabile
→ si inseriscono input malevoli→ l'input viene interpretato come SQL→ è possibile bypassare il login e leggere dati riservati
Versione corretta→
vengono utilizzate le prepared statements→ l'input dell'utente viene trattato come semplice testo→ la SQL Injection non funziona più.
2. BYPASS DEL LOGIN
🎯 Obiettivo
Entrare nell'applicazione senza conoscere realmente la password.
Nel campo username viene inserito:
admin' --
mentre la password può essere lasciata vuota o contenere un valore qualsiasi.
💡 Cosa succede?
Il carattere:
'
serve a chiudere la stringa SQL.
I caratteri:
--
introducono un commento SQL.
Quindi la parte successiva della query originale viene ignorata.
⚠️ Dettaglio importante
Dopo -- deve esserci uno spazio, perché MariaDB riconosca correttamente il commento.
3. UNION-BASED SQL INJECTION
Dopo il bypass del login, il progetto mostra un secondo attacco.
🎯 Obiettivo
Utilizzare il campo di ricerca del catalogo film per ottenere informazioni dalla tabella:
utenti
e visualizzare:
username
password
ruolo
Il procedimento avviene in 3 step.
STEP 1 — SCOPRIRE IL NUMERO DI COLONNE
Si utilizza ORDER BY aumentando progressivamente il numero:
' ORDER BY 1 --
' ORDER BY 2 --
' ORDER BY 3 --
' ORDER BY 4 --
' ORDER BY 5 --
Risultato
Con:
ORDER BY 5
il programma va in errore.
Questo significa che la query originale possiede 4 colonne.
STEP 2 — SCOPRIRE LE COLONNE VISIBILI
Ora bisogna capire quali colonne della query vengono effettivamente visualizzate nella pagina.
Si utilizza:
' UNION SELECT 1,2,3,4 --
Risultato
Nella pagina compaiono:
2 – 3 – 4
ma non compare 1
Quindi:
Questo permette di sapere dove inserire i dati che vogliamo visualizzare.