blind_sqli
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| blind_sqli [2026/06/17 15:52] – mbunic | blind_sqli [2026/06/18 14:47] (current) – mbunic | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====Blind SQL injection==== | ====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 koju je baza poslala, gdje na primjer piše da je neispravno korištenje znakova navodnika. U nekim situacijama sustav | + | **Blind |
| - | Glavna razlika između slijepih i „običnih“ | + | Napadač potom koristi tu informaciju kako bi konstruirao |
| - | Informacija koje se mogu ovim načinom iskorištavanja saznati su, na primjer: | + | |
| - | - postoji li korisnik " | + | < |
| + | ako je uvjet X zadovoljen, napravi A, ako nije zadovoljen, napravi B. | ||
| + | </ | ||
| - | - počinje li lozinka korisnika admin sa slovom " | + | Gdje A i B izazivaju dva različita stanja sustava koja je moguće detektirati. |
| + | |||
| + | Primjeri ovakvih upita: | ||
| + | |||
| + | 1. Kada se može znati je li se dogodila greška u bazi ili ne: | ||
| + | |||
| + | < | ||
| + | Ako je točno da postoji tablica " | ||
| + | podijeli broj s nulom kako bi izazvao grešku. | ||
| + | </ | ||
| + | |||
| + | 2. Kada se može razlikovati jedino je li baza vratila prazan odgovor ili ne: | ||
| + | |||
| + | < | ||
| + | Ako je točno da postoji korisnik " | ||
| + | vrati tog korisnika. | ||
| + | </ | ||
| + | |||
| + | 3. Kada se ne zna odgovor baze, ali se može znati koliko vremena je bazi podataka trebalo za odgovor: | ||
| + | |||
| + | < | ||
| + | Ako password korisnika " | ||
| + | spavaj 5 sekundi (ili, na primjer, izvrši zahtjevno računanje kojem treba više vremena za izvođenje) | ||
| + | </ | ||
| + | |||
| + | Napad ilustriran zadnjim primjerom, gdje se pomoću vremena izvršavanja upita eksfiltriraju podaci iz baze, naziva se **time-based blind SQL injection**. | ||
| + | |||
| + | |||
| + | Kako bi se saznali podaci u bazi, rezultat izvršavanja upita se mora spregnuti s nekom informacijom o stanju sustava koju je moguće razlikovati. Budući da najčešće postoje samo dva stanja koja je moguće jasno razlikovati, | ||
| + | |||
| + | Primjer koji prikazuje kako bi se ovakvim upitima eksfiltrirala lozinka korisnika admin: | ||
| + | |||
| + | < | ||
| + | - počinje li lozinka korisnika | ||
| + | |||
| + | - počinje li lozinka korisnika " | ||
| + | |||
| + | - počinje li lozinka korisnika " | ||
| + | |||
| + | - počinje li lozinka korisnika " | ||
| + | |||
| + | - počinje li lozinka korisnika " | ||
| + | |||
| + | - počinje li lozinka korisnika " | ||
| + | |||
| + | - počinje li lozinka korisnika " | ||
| + | ... | ||
| + | </ | ||
| - | - počinje li lozinka korisnika admin sa slovom " | + | Iz ovog primjera je jasno da je za eksfiltraciju informacija |
| - | - 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..., | ||
| __**Primjeri**__ - **Zadatak s Hacknite platforme** - ** Banka ** | __**Primjeri**__ - **Zadatak s Hacknite platforme** - ** Banka ** | ||
| Line 115: | Line 161: | ||
| Pokretanjem programa dobivamo hash vrijednost Sarine lozinke koja je < | Pokretanjem programa dobivamo hash vrijednost Sarine lozinke koja je < | ||
| - | Koristimo crackstation.net za dobivanje para vrijednosti koja hashiranjem algoritmom SHA256 daje dobiveni hash, te uspješno dobivamo vrijednost < | + | Koristimo crackstation.net za dobivanje para vrijednosti koja hashiranjem algoritmom SHA256 daje dobiveni hash, te uspješno dobivamo vrijednost < |
| {{blind_sql_8.png}} | {{blind_sql_8.png}} | ||
| - | Sada se možemo uspješno | + | Sada se možemo uspješno |
blind_sqli.1781711534.txt.gz · Last modified: 2026/06/17 15:52 by mbunic