Hvordan Test for Persienner i SQL

Blind SQL-injeksjon er en av de farligste SQL utnyttelser på grunn av sin enkelhet. Angriperen trenger ikke å vite noe om din SQL database for å injisere tredjeparts kode i tabellene. Videre er ingenting kjent om resultatet av en operasjon. Testing for blind SQL-injeksjon sårbarheter i nettapplikasjoner er en viktig oppgave som hindrer tap av data og sensitiv informasjon. Heldigvis kan du bruke en enkel nettadresse for å teste for blinde i SQL.

Bruksanvisning

1 Anta at din web-applikasjon tar en persons fornavn og etternavn, ser det opp i databasen og returnerer sine kontaktdetaljer. Her er den populære nettadressen format for en slik søknad:

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

Hvis du sender inn dette spørsmålet, går søknaden din kontaktinformasjon. Den gjør dette ved å kjøre en spørring som inneholder denne parameteren:

HVOR etternavn = 'Navn' og fornavn = 'Din'

2 Bruk denne URL for å teste for en blind sårbarhet SQL-injeksjon:

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

Merk at "% 3d" og "% 3E0" er URL-koding for "=" og ">" tegn, henholdsvis. Denne URL forsøker å endre søkeparameteren til dette:

HVOR etternavn = 'Navn' og fornavn = 'Din' AND (velg count (*) fra falske)> 0 eller '1' = '1'

Hvis angrepet er vellykket, kan angriperen injisere kode inn i databasen ved hjelp av blind SQL-injeksjon.

3 Evaluer søknad reaksjon på angrepet. Hvis den gir et svar som ligner på dette, er det immun mot blinde SQL-injeksjoner:

Feil: Ingen bruker funnet med navn + OG + (velg + count (*) + fra + falske) +% 3E0 + OR + 1% 3d1 navn!

Hvis den gir en av disse svarene, er programmet utsatt for blind SQL-injeksjon:

intern server feil
Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

Hint

  • Blind SQL-injeksjon er en svært farlig utnytte.