Hva er noen eksempler på en SQL-injeksjon angrep?

Hva er noen eksempler på en SQL-injeksjon angrep?


Mange kommersielle nettsteder er sårbare for SQL-injeksjon angrep fordi de er avhengig av SQL programmeringsspråk for databasetilgang. Webskjemaer sende informasjon til nettstedets programmer, som bruker SQL til å behandle data. Skruppelløse brukere kan skrive SQL-kode inn i webskjema og lure nettstedet til å oppgi konfidensiell informasjon eller muligens forårsake skade. Hvis nettstedets programmerere nøye kontrollere innkommende data, kan de hindre at dette happen.

Hvordan SQL Injection Works

En Web skjemaet inneholder tekstfelt der brukeren skriver hans navn, adresse og annen informasjon. Skjemaet side sender data til en annen side som behandler dem inn i en database ved hjelp av Structured Query Language, eller SQL. Hvis brukeren skriver inn SQL-kode i feltet for adresse, for eksempel behandler SQL database server koden, skaper problemer.
Kommersielle nettsteder har du registrerer deg med et brukernavn og passord før du gir deg tilgang. Men folk glemmer passord, slik at de fleste nettsteder har en side som sender deg ditt passord per e-post. Fordi nettstedets programmerings ser opp passordet i en SQL-setning før den e-post den til deg, er det en moden sted for en SQL-injeksjon angrep. En angriper trenger ikke en konto på nettstedet for angrepet på jobb; Web-programmet behandler alle henvendelser uansett om de er lovlige eller ikke.

Gjette feltnavn

Ved å skrive strengen "abc 'AND feltnavn ER NULL; - ", Minus anførselstegn, inn bruker-ID-feltet for passord-påminnelse form, en angriper kan gjette navnene på feltene i området registrerte brukere bord. En feil feltnavn produserer en feilmelding, men lar deg prøve igjen; en riktig gjetning tar deg til en side som viser din bruker-ID ikke er gyldig, men også lar deg prøve på nytt. En legitim kontonummer blir en del av en SQL-kommando som dette: "SELECT passord fra user_table der konto = 'jimmy123'" Bruke strengen nevnt ovenfor, blir kommandoen følgende: "SELECT passord fra user_table der konto = 'abc' AND feltnavn IS NULL; - "" Begge er gyldige SQL-setninger; den andre avslører informasjon som nettstedet eieren ikke har tenkt å dele.

Gjette Tabell Names

En hacker kan bruke ovenfor teknikk for å gjette annen verdifull informasjon, for eksempel navn på tabeller i nettstedets database. I dette tilfellet, er en tilnærming til å skrive inn følgende streng i et tekstfelt: "abc 'AND (SELECT COUNT (*) fra tabellnavn) = 1; -. "Ved å erstatte forskjellige navn på" tabellnavn ", hun vil til slutt gjette riktig noen av databasens tabellnavn. Som før de uriktige gjetninger bare resultere i en uskadelig feilmeldingen; hvis du ser noen feil, har du gjettet riktig.

database Modification

En dårlig utformet Databasen gir alle sine brukere på samme sikkerhetsnivå, slik at Internett-brukere til å gjøre noe, inkludert modifisere selve databasen. En database-modifikasjon type angrep bruker samme grunnleggende strategi som før, ved å skrive SQL-kode i en Web tekstboks. Når en angriper har riktig gjettet noen av databasens tabellnavn, kan han da prøve følgende tekststreng: "abc '; DROP TABLE tabellnavn; - "The SQL server vil tolke dette som en kommando for å finne en bruker-ID etterfulgt av en andre kommando for å slette en tabell fra databasen. Hvis dette ikke fungerer, kan området gi deg en feilmelding. Ellers vil det indikere at du har en ugyldig bruker-ID, og ​​det vil ha fjernet tabellen.