Come prova per tende a SQL

January 21

iniezione SQL cieca è uno degli exploit SQL più pericolose per la sua semplicità. L'attaccante non ha bisogno di sapere nulla di database SQL per iniettare codice di terze parti nelle tabelle. Inoltre, non si sa nulla del risultato di un'operazione. Test per le vulnerabilità SQL injection cieca nelle applicazioni Web è un compito fondamentale che previene la perdita di dati e informazioni sensibili. Fortunatamente, è possibile utilizzare un semplice URL di prova per ciechi in SQL.

istruzione

1 Si supponga che l'applicazione Web prende nome e cognome di una persona, sembra che nel database e restituisce i suoi dati di contatto. Qui è il formato URL popolare per tale applicazione:

http://YourWebsite.com/directory.asp?lastname=Name&firstname=Your

Se si invia questa query, l'applicazione restituisce i dati di contatto. Lo fa eseguendo una query che contiene questo parametro:

DOVE = LastName 'Nome' e cognome = 'Il tuo'

2 Utilizzare questo URL di prova per una vulnerabilità di SQL injection cieco:

http://YourWebsite.com/directory.asp?lastname=Name&firstname=Your'+AND+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1

Si noti che "% 3d" e "% 3E0" sono le codifiche URL per le "=" e ">" caratteri, rispettivamente. Questo URL tenta di cambiare il parametro di query a questo:

DOVE = LastName 'Nome' e cognome = 'Il tuo' E (selezionare il conteggio (*) dal falso)> 0 o '1' = '1'

Se l'attacco ha successo, l'attaccante può iniettare codice nel database utilizzando SQL injection cieco.

3 Valutare la risposta dell'applicazione per l'attacco. Se si restituisce una risposta simile a questo, è immune da accecare iniezioni SQL:

Errore: Nessun utente trovato con nome Il tuo + E + (selezionare + count (*) + da + falso) +% 3E0 + O + 1% 3D1 nome!

Se restituisce una di queste risposte, l'applicazione è vulnerabile a SQL injection cieco:

Errore interno del server
Microsoft OLE DB per driver ODBC errore '80040e37'

Consigli e avvertenze

  • SQL injection cieca è un exploit molto pericoloso.