This is an old revision of the document!
Blind SQL injection
Pri općenitom testiranju ranjivosti nekog unosa na SQL injekcije, mogu se prvo pokušati unijeti jednostruki ili dvostruki navodnici i ako je web poslužitelj podešen da prosljeđuje pogreške korisniku, korisniku se može proslijediti i prikazati poruku greška kojiu je baza poslala, gdje na primjer piše da je neispravno korištenje znakova navodnika. U nekim situacijama sustav je podešen tako da se poruke pogreške iz baze podataka nikad ne prosljeđuju krajnjem korisniku, no sam SQL upit koji se generira s korisničkim unosom nije dobro formatiran i zaštićen. U takvim slučajevima mogu se koristiti takozvane slijepe SQL injekcije.
Glavna razlika između slijepih i „običnih“ SQL injekcija, jest da u slijepim SQL injekcijama nema konkretnih podataka koji se dohvaćaju SQL injekcijom iz sustava i vraćaju napadaču, nego napadač na domišljate i kreativne načine nađe način da napravi SQL injekciju i od baze podataka, često indirektno, sazna je li SQL upit konstruiran SQL injekcijom točan ili netočan. Informacija koje se mogu ovim načinom iskorištavanja saznati su, na primjer:
- postoji li korisnik “admin” u sustavu?
- počinje li lozinka korisnika admin sa slovom “a”?
- počinje li lozinka korisnika admin sa slovom “b”? - počinje li lozinka korisnika admin sa slovima abc?
Iako su pitanja na koja možemo saznati odgovor samo potvrdna, odnosno jedine informacije koje možemo dobiti su da ili ne / točno ili netočno…, i dalje često možemo postaviti velik broj ovakvih pitanja sustavu i na svako ovo pitanje, pažljivim praćenjem promjena na stranici, možemo zaključiti koji su odgovori na postavljena pitanja. Često je onda idući korak napraviti skriptu ili koristiti već gotov alat, koji će umjesto automatski generirati i postaviti velik broj pitanja koja nas zanimaju i na kraju nam pokazati zabilježene odgovore.
Primjeri - Zadatak s Hacknite platforme - Banka