User Tools

Site Tools


blind_sqli

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
blind_sqli [2026/06/18 14:30] – Prerada početka mbunicblind_sqli [2026/06/18 14:47] (current) mbunic
Line 1: Line 1:
 ====Blind SQL injection==== ====Blind SQL injection====
  
-**Blind SQL injection** je podskup **SQL injection ranjivosti**, gdje napadač može izvršiti SQL injekciju, ali ne može direktno dobiti vraćeni odgovor od baze.  Umjesto toga, jedina informacija koju napadač može dobiti o izvršavanju upita može biti, primjerice, je li baza vratila prazan odgovor, je li se dogodila greška ili koliko je bazi podataka trebalo da generira odgovor.+**Blind SQL injection** je podskup **SQL injection ranjivosti**, gdje napadač može izvršiti SQL injekciju, ali ne može direktno dobiti vraćeni odgovor od baze.  Umjesto toga, jedina informacija koju napadač može dobiti o izvršavanju upita može biti, primjerice, je li baza vratila prazan odgovor, je li se dogodila greška ili koliko je vremena bazi podataka trebalo da generira odgovor.
  
 Napadač potom koristi tu informaciju kako bi konstruirao SQL upite oblika: Napadač potom koristi tu informaciju kako bi konstruirao SQL upite oblika:
Line 11: Line 11:
 Gdje A i B izazivaju dva različita stanja sustava koja je moguće detektirati.  Gdje A i B izazivaju dva različita stanja sustava koja je moguće detektirati. 
  
-Primjer ovakvih upita:+Primjeri ovakvih upita:
  
 1. Kada se može znati je li se dogodila greška u bazi ili ne: 1. Kada se može znati je li se dogodila greška u bazi ili ne:
Line 37: Line 37:
  
  
-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, i sam SQL upit konstruiran SQL injekcijom mora biti u kondicionalnom obliku, gdje se definira uvjet koji može biti ili zadovoljen ili nije, te se, ovisno o tome je li uvjet zadovoljen, izaziva stanje sustava koje je moguće razaznati.+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, i sam SQL upit konstruiran SQL injekcijom mora biti u kondicionalnom obliku, gdje se definira uvjet koji može biti ili zadovoljen ili ne, te se, ovisno o tome je li uvjet zadovoljen, izaziva stanje sustava koje je moguće razaznati.
  
 Primjer koji prikazuje kako bi se ovakvim upitima eksfiltrirala lozinka korisnika admin: Primjer koji prikazuje kako bi se ovakvim upitima eksfiltrirala lozinka korisnika admin:
Line 58: Line 58:
 </file> </file>
  
-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..., 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.+Iz ovog primjera je jasno da je za eksfiltraciju informacija često potreban znatno veći broj upita nego pri uobičajenim SQL injekcijamaZato se pri ovakvim napadima kreiraju skripte ili koriste gotovi alati kao **sqlmap** koji automatizirano generiraju velik broj zahtjeva detektiraju je li uvjet u SQL injekciji bio zadovoljen ili nije te na kraju prikazuju eksfiltrirane informacije. 
 + 
  
 __**Primjeri**__ - **Zadatak s Hacknite platforme** - ** Banka ** __**Primjeri**__ - **Zadatak s Hacknite platforme** - ** Banka **
Line 159: Line 161:
 Pokretanjem programa dobivamo hash vrijednost Sarine lozinke koja je <code>d4120d4f638a4bdd0f397e975b71b117583f4fdb35c60aeb5416fa922651a465</code> Pokretanjem programa dobivamo hash vrijednost Sarine lozinke koja je <code>d4120d4f638a4bdd0f397e975b71b117583f4fdb35c60aeb5416fa922651a465</code>
  
-Koristimo crackstation.net za dobivanje para vrijednosti koja hashiranjem algoritmom SHA256 daje dobiveni hash, te uspješno dobivamo vrijednost <code>monitor123</code>što je lozinka korisnika Sara. Dobivanje reversa hasha od lozinke s pomoću crackstationa prikazano na slici ispod.+Koristimo crackstation.net za dobivanje para vrijednosti koja hashiranjem algoritmom SHA256 daje dobiveni hash, te uspješno dobivamo vrijednost <code>monitor123</code> što je lozinka korisnika Sara. Dobivanje originalne vrijednosti hasha lozinke s pomoću crackstationa prikazano je na slici ispod.
  
 {{blind_sql_8.png}} {{blind_sql_8.png}}
  
  
-Sada se možemo uspješno ulogirati na formu admin portala s pomoću korisničkog imena //sara// i lozinke //monitor123//, ali nas nakon toga traži drugi faktor 2fa autentifikacije. +Sada se možemo uspješno prijaviti na formu admin portala s pomoću korisničkog imena //sara// i lozinke //monitor123//, ali nas nakon toga traži drugi faktor 2fa autentifikacije. 
  
  
blind_sqli.1781793047.txt.gz · Last modified: 2026/06/18 14:30 by mbunic

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki