Quali sono alcuni esempi di un attacco SQL Injection?

August 22

Quali sono alcuni esempi di un attacco SQL Injection?


Molti siti Web commerciali sono vulnerabili ad attacchi di SQL injection, perché dipendono dal linguaggio di programmazione SQL per l'accesso al database. moduli Web passano informazioni ai programmi del sito, che utilizzano SQL per elaborare i dati. gli utenti senza scrupoli possono digitare il codice SQL nel modulo Web e ingannare il sito a divulgare informazioni riservate o con conseguenti danni. Se i programmatori del sito controllare attentamente i dati in arrivo, si può evitare che ciò happenning.

Come SQL Injection Opere

Un modulo Web contiene campi di testo in cui l'utente digita il proprio nome, indirizzo e altre informazioni. La pagina del modulo passa i dati ad una seconda pagina che li elabora in un database utilizzando la Structured Query Language, o SQL. Se l'utente inserisce codice SQL nel campo per l'indirizzo, ad esempio, il server di database SQL elabora il codice, causando problemi.
I siti web commerciali hanno si registra con un ID utente e una password prima di dare l'accesso. Tuttavia, la gente dimenticare le password, quindi la maggior parte dei siti hanno una pagina che vi manda la password via e-mail. Dato che la programmazione del sito guarda la password in un'istruzione SQL prima di esso e-mail a voi, è un luogo maturo per un attacco SQL injection. Un attaccante non ha bisogno di un account sul sito per l'attacco al lavoro; il programma Web elabora tutte le richieste indipendentemente dal fatto che siano legittimi o meno.

Guessing Nomi di campo

Digitando la stringa "abc 'E nomecampo IS NULL; - ", Meno le virgolette, nel campo ID utente di un modulo password promemoria, un utente malintenzionato può indovinare i nomi dei campi nella tabella di utenti registrati del sito. Un nome di campo errato genera un messaggio di errore, ma ti permette di provare di nuovo; Se si indovina si porta a una pagina che indica l'ID utente non è valida, ma permette anche di provare di nuovo. Un numero di conto legittima diventa parte di un comando SQL come questo: "SELECT password user_table DOVE account_id = 'jimmy123'" Uso la stringa di cui sopra, il comando diventa la seguente: "SELECT password user_table DOVE account_id = 'abc' E fieldname IS NULL; - ' "Entrambi sono istruzioni SQL valide; la seconda rivela informazioni che il proprietario del sito non ha intenzione di condividere.

Nomi tabelle Guessing

Un hacker può utilizzare la tecnica sopra di indovinare altre utili informazioni, come ad esempio i nomi di tabelle nel database del sito. In questo caso, un approccio è quello di digitare la seguente stringa in un campo di testo: "abc 'E (SELECT COUNT (*) FROM TableName) = 1; -. "Sostituendo nomi diversi per" tablename ", ha finirà per indovinare alcuni dei nomi delle tabelle del database. Come in precedenza, le congetture errate semplicemente il risultato in un messaggio di errore innocuo; se si vede nessun errore, avete indovinato.

Database di modifica

Un database mal progettato dà a tutti i suoi utenti lo stesso livello di sicurezza, consentendo agli utenti Web di fare qualsiasi cosa, anche modificare il database stesso. Un tipo di database-modifica di attacco utilizza la stessa strategia di base come prima, digitando il codice SQL in una casella di testo Web. Una volta che un attaccante ha indovinato alcuni dei nomi delle tabelle del database, che può quindi provare la seguente stringa di testo: "abc '; DROP TABLE nometabella; - "Il server SQL interpreterà questo come un comando per trovare un ID utente seguito da un secondo comando per eliminare una tabella dal database. Se questo non funziona, il sito può dare un messaggio di errore. In caso contrario, si indicherà si dispone di un ID utente non valido, e avrà rimosso il tavolo.