Što je SQL ubrizgavanje?

SQL injekcija je tehnika ubrizgavanja koda koja se koristi za napadanje podataka vođenih aplikacijama umetanjem zlonamjernih SQL izraza u polje izvršenja. Baza podataka je vitalni dio svake organizacije. Tim se rješava sigurnost na visokoj razini u organizaciji. Doznajmo najprije što je SQL.

Što je SQL?

SQL je strukturirani jezik upita. Koristi se za interakciju i za obradu baze podataka.

Što SQL točno radi?

  • Stvorite novu bazu podataka.
  • Umetanje, ažuriranje, brisanje zapisa.
  • Izradite nove upite.
  • Pohranjeni postupci.
  • Stvorite prikaze.
  • Izvršite upite.
  • Postavljanje dozvola.

SQL ubrizgavanje jedna je od glavnih sigurnosnih prijetnji. To se odnosi na cyber kriminal.

U SQL-u imamo koncept koji se zove SQL Injection. Ova se tehnika koristi za ubrizgavanje koda. SQLi (SQL injekcija je poznata i kao vrsta hakiranja, tj. Napada ubrizgavanja.) Poznata je i kao tehnika web hakiranja.

Ova injekcija ubrizgava zlonamjerni kod u bazu dajući podatke na web stranici. Ovi ulazi imaju određene uvjete, koji su uvijek istiniti. Uz ove uvjete, hakeri lako prolaze sigurnosne testove. Mogu lako dobiti podatke iz SQL baze podataka. Pomoću SQL Injection mogu dodavati, mijenjati i brisati zapise u bazi podataka. Ta baza podataka može biti bilo tko među MySQL, SQL Server, Oracle, SQL Server itd. Je protivzakonito.

Ako je web lokacija ili aplikacija loše dizajnirana, ti napadi mogu naštetiti cijelom sustavu. U ovom trenutku ulazi u sliku cyber-sigurnost.

Ponašanje SQL injekcije

Ovi napadi obično rade na dinamičnim SQL izjavama. Ubrizgavanje SQL-a ovisi o pogonu baze podataka. To se razlikuje od motora do motora. Kad na korisničkoj stranici zatražimo unos korisnika, poput korisničkog imena i lozinke. Nenamjerno dajemo korisniku pristup kako bi dao taj unos izravno u bazu podataka.

Vrste ubrizgavanja SQL-a

  1. In-band SQL ubrizgavanje (Classic SQL ubrizgavanje): U ovoj tehnici haker koristi isti način za hakiranje baze i dobivanje podataka, tj. Rezultata iz baze podataka.
  1. SQL ubrizgavanje temeljeno na pogreškama: U ovoj vrsti haker dobiva uzorak pogreške baze podataka i pristupa joj. Možemo reći da je ovo jedna vrsta unutarnjeg pojasa SQL ubrizgavanja.
  1. Ubrizgavanje SQL-a utemeljeno na Uniji: Ova tehnika je također dio ugrađenog SQL ubrizgavanja. U ovoj tehnici korisnik kombinira upit i dobiva rezultat natrag kao dio HTTP odgovora.
  1. Inferencijalno SQL ubrizgavanje (Slijepo SQL ubrizgavanje): Kao što ime sugerira, ovdje haker ne koristi bend za dobivanje podataka iz baze podataka. Haker ima sposobnost promjene strukture baze podataka promatrajući obrasce baze podataka. Ovo je vrlo opasna vrsta SQL injekcije. Ovaj napad zahtijeva duže vrijeme da se izvrši. Haker ne može vidjeti izlaz napada ovom tehnikom.
  1. Booleovo (temeljeno na sadržaju) slijepo SQL ubrizgavanje: Ovo je dio Inferencijalne SQL injekcije. U ovoj se tehnici haker prisiljava na bazu podataka radi dobivanja rezultata na temelju istinskog ili lažnog stanja. Ovisno o ovom stanju, rezultat HTTP odgovora se mijenja. Ova vrsta napada na zaključivanje ako se iskorišteni korisni teret vrati istinito ili lažno, iako se podaci iz baze podataka ne vraćaju nazad. Ovi posebno spori napadi.
  1. Vremensko utemeljeno slijepo SQL ubrizgavanje: Ova tehnika je također dio Inferencijalne SQL injekcije. Hakeri koriste ovu tehniku ​​kako bi postavili korisne terete. U ovoj tehnici hakeri daju vrijeme bazi podataka da izvrše upit. U međuvremenu, haker ima ideju o rezultatu je li istinit ili lažan. Ovaj proces napada također je sporog karaktera.
  1. Izvanpojasno ubrizgavanje SQL-a: Ovo je napad temeljen na značajkama. To nije baš uobičajeno. Ovaj napad koristi haker kada haker treba koristiti različite kanale za napad i druge kako bi dobio rezultat. Tehnike ubrizgavanja izvan opsega ovise o sposobnosti poslužitelja baze podataka da postavlja DNS ili HTTP zahtjeve za isporuku podataka hakeru.

Kako radi?

Postoje uglavnom dva načina na koja se napadač fokusira kako bi dobio podatke:

  1. Izravni napad: izravna upotreba kombinacije različitih vrijednosti. Ovdje je haker stavio potvrđeni unos koji daje točan rezultat.
  2. Istraživanje: Analiza baze podataka davanjem različitih unosa. Ovdje napadač promatra odgovore poslužitelja baze podataka i odlučuje koji napad treba izvršiti.

Kao što smo već raspravljali o SQL injekcijskim hakerima stavite uvjet u ulazni element koji je uvijek istinit. Molimo pogledajte sljedeći primjer.

EX:

Pretpostavimo da u nastavku imamo upit za dobivanje podataka zaposlenika iz baze podataka:

500 ILI 1 = 1

Odaberite * od zaposlenika Gdje Userid = '500'

Korisnički ID:

Ako nemamo nikakvo ograničenje na korisnikov unos. Tada hakeri mogu upotrijebiti ovo polje za lak pristup podacima iz baze podataka.

A upit može izgledati dolje

Odaberite * od zaposlenika gdje User-id = 500 ILI 1 = 1;

Ovaj će upit vratiti podatke iz baze podataka jer će 1 = 1 uvijek vratiti istinu. Na ovaj način uvjet postaje istinit. To se čini ranjivim. To je vrlo opasno za organizaciju. Na primjer, razmislite o bankarskom sektoru. Tamo gdje korisnici imaju svoje neto podatke o bankarskim podacima, podatke o saldu itd.

Ova je tehnika hakeru vrlo jednostavna za dobivanje informacija. Jednostavnim davanjem nekih podataka u bazu podataka.

Hakeri dobivaju podatke jednostavnim umetanjem ILI i = umetanjem u bazu podataka.

Korisničko ime:

"Ili" "="

Zaporka:

"Ili" "="

Na poslužitelju se krajnji upit ispravno izvršava i ne pojavljuje se greška. Također možete koristiti 'ILI' 1 '=' 1 da biste dobili podatke s poslužitelja baze podataka.

E sad se postavlja pitanje kako bismo održavali sigurnost naše baze podataka?

A odgovor je pomoću SQL parametara.

Dodavanjem dodatnih parametara u upitu kad se izvršava. Ovi napadi se lako mogu spriječiti nekim tehnikama dolje.

Pohranjene procedure, pripremljene izjave, regularni izrazi, korisnička prava pristupa vezi baze podataka, poruke o pogrešci itd. Su preventivne tehnike .

Još jedna stvar koja je, trebali bismo pomisliti, u aplikaciji je i razumno imati različite baze podataka za različite svrhe.

Još je jedna stvar testiranje. Ispitivanje baze podataka za različite uvjete je također najbolji način.

Zaključak

Stvaranje baze podataka presudno je. Rizik od dobivanja informacija u ruci hakera nije dobar za nijednu aplikaciju. Dakle, dok stvaramo bazu podataka moramo slijediti neke jednostavne korake da spriječimo ovaj gubitak, za to je prikladna rečenica: "Prevencija je bolja nego liječenje".

Preporučeni članci

Ovo je vodič za Što je SQL ubrizgavanje. Ovdje smo razgovarali o ponašanju, kako to radi i vrste SQL ubrizgavanja. Možete i proći naše druge predložene članke da biste saznali više -

  1. Što je SQL Server?
  2. Što je SQL | Objašnjeni jezik upita
  3. Što je SQL Developer?
  4. Ažuriranje SQL naredbi
  5. Redovni izrazi u Javi

Kategorija: