Kaj je SQL vbrizgavanje?

SQL Injection je tehnika vbrizgavanja kode, ki se uporablja za napadanje podatkovno vodenih aplikacij z vstavljanjem zlonamernih stavkov SQL v izvedbeno polje. Baza podatkov je bistveni del vsake organizacije. S tem se ukvarja varnost na visoki ravni v organizaciji. Naj se najprej naučimo, kaj je SQL.

Kaj je SQL?

SQL je strukturiran jezik poizvedb. Uporablja se za interakcijo in manipulacijo z bazo podatkov.

Kaj točno počne SQL?

  • Ustvari novo bazo podatkov.
  • Vstavljanje, posodabljanje, brisanje zapisov.
  • Ustvari nove poizvedbe.
  • Shranjeni postopki.
  • Ustvari poglede.
  • Izvedite poizvedbe.
  • Nastavite dovoljenja.

Vbrizgavanje SQL je ena izmed glavnih groženj varnosti. To spada pod kibernetski kriminal.

V SQL imamo koncept, imenovan SQL Injection. Ta tehnika se uporablja za vbrizgavanje kode. SQLi (SQL vbrizgavanje je znano tudi kot vrsta taksistiranja, tj. Napada injekcije.) Znano je tudi kot tehnika spletnega taksista.

S to injekcijo se v bazo podatkov vnese zlonamerna koda, tako da se vnese spletna stran. Ti vhodi imajo nekaj pogojev, ki so vedno resnični. S temi pogoji hekerji zlahka opravijo varnostne teste. Zlahka dobijo podatke iz baze podatkov SQL. S SQL Injection lahko dodajajo, spreminjajo in brišejo zapise v bazi podatkov. Ta baza podatkov je lahko kdor koli med MySQL, SQL Server, Oracle, SQL Server itd., Je nezakonita.

Če je spletno mesto ali aplikacija slabo zasnovana, lahko ti napadi škodijo celotnemu sistemu. Na tej točki pride do izraza kibernetska varnost.

Obnašanje injekcije SQL

Ti napadi običajno delujejo na dinamičnih stavkih SQL. Vbrizgavanje SQL je odvisno od motorja baze podatkov. To se razlikuje od motorja do motorja. Ko uporabnika na spletni strani prosimo za vnos podatkov, kot sta uporabniško ime in geslo. Uporabnikom nenamerno omogočimo dostop, da lahko ta vnos posreduje neposredno v bazo podatkov.

Vrste injekcij SQL

  1. Injiciranje SQL v pasu (klasično brizganje SQL): V tej tehniki heker uporablja enak način, da vdre v bazo in pridobi podatke, tj. Rezultate iz baze.
  1. Napaka SQL na osnovi napake: pri tej vrsti heker dobi vzorec napake baze in do nje dostopa. Lahko rečemo, da gre za eno vrsto vbrizgavanja SQL v pasu.
  1. Vbrizgavanje SQL, ki temelji na uniji: Ta tehnika je tudi del vbrizgavanja SQL v pasu. V tej tehniki uporabnik kombinira poizvedbo in dobi rezultat nazaj kot del HTTP odgovora.
  1. Inferencialno injiciranje SQL (Blind SQL injection): Kot že ime pove, tukaj heker ne uporablja pasu za pridobivanje podatkov iz baze podatkov. Hacker ima sposobnost spreminjanja strukture baze podatkov z opazovanjem vzorcev baze podatkov. To je zelo nevarna vrsta vbrizgavanja SQL. Ta napad traja dlje časa. Heker s to tehniko ne vidi izhoda napada.
  1. Booleovo (na osnovi vsebine) slepo injiciranje SQL: To je del Inferencialne SQL injekcije. V tej tehniki heker prisili v bazo podatkov, da pridobi rezultate na podlagi resničnega ali napačnega stanja. Rezultat odziva HTTP se glede na to stanje spremeni. Ta vrsta napada na sklep, če je uporabljena koristna obremenitev vrnjena resnična ali napačna, čeprav se podatki iz baze podatkov ne vrnejo nazaj. Ti še posebej počasni napadi.
  1. Časovna injekcija slepih SQL: Ta tehnika je tudi del Inferencialne SQL injekcije. Hekerji to tehniko uporabljajo za postavljanje koristnih obremenitev. Hekerji v tej tehniki dajo čas bazi podatkov za izvedbo poizvedbe. Medtem pa heker pridobi predstavo o rezultatu, ne glede na to, ali je resničen ali napačen. Tudi ta proces napada je po naravi počasen.
  1. Injekcija zunaj pasu SQL: To je napad, ki temelji na značilnostih. To ni zelo pogosto. Ta napad uporablja heker, ko mora heker uporabljati različne kanale za napad in druge, da dobi rezultat. Tehnike vbrizgavanja zunaj pasov SQL so odvisne od zmožnosti strežnika baz podatkov, da lahko DNS ali HTTP pošlje zahteve hekerju.

Kako deluje?

Obstajata predvsem dva načina, kamor se napadalec osredotoči na pridobivanje podatkov:

  1. Neposredni napad: Neposredna uporaba kombinacije različnih vrednosti. Tu je heker dal potrjeni vnos, ki daje točen rezultat.
  2. Raziskava: Analiza baze podatkov z različnimi vnosi. Tu napadalec opazuje odzive strežnika baze podatkov in se odloči, kateri napad je treba izvesti.

Kot smo že razpravljali o hekerjih za vbrizgavanje SQL, postavimo stanje v vhodni element, kar je vedno res. Preverite naslednji primer.

EX:

Recimo, da imamo spodnjo poizvedbo za pridobitev podatkov o zaposlenih iz baze podatkov:

500 ALI 1 = 1

Izberite * od zaposlenih Kjer je Userid = '500'

Uporabniško ime :

Če uporabnikovega vnosa nimamo nobenih omejitev. Nato lahko hekerji to polje uporabijo za dostop do podatkov iz baze podatkov.

In poizvedba je lahko videti spodaj

Izberite * od zaposlenih, pri katerih je User-id = 500 ALI 1 = 1;

Ta poizvedba bo vrnila podatke iz baze podatkov, ker 1 = 1 vedno vrne resnico. Na ta način stanje postane resnično. To se zdi ranljivo. To je za organizacijo zelo nevarno. Na primer, pomislite na bančni sektor. Kadar imajo uporabniki svoje gesle za podatke o bančnih podatkih, podatke o bilansu itd.

Ta tehnika je za hekerja zelo enostavna za pridobivanje informacij. S preprosto vnašanjem podatkov v bazo.

Hekerji dobijo podatke s preprosto vstavitvijo ALI in = z vstavitvijo v bazo.

Uporabniško ime:

"Ali" "="

Geslo:

"Ali" "="

Na strežniku se končna poizvedba pravilno izvede, da ne pride do napake. Lahko tudi uporabite 'OR' 1 '=' 1 za pridobivanje podatkov s strežnika baz podatkov.

Zdaj se postavlja vprašanje, kako bi ohranili varnost naše baze podatkov?

In odgovor je z uporabo parametrov SQL.

Z dodajanjem dodatnih parametrov poizvedbi, ko se izvede. Te napade je mogoče enostavno preprečiti z nekaterimi spodnjimi tehnikami.

Shranjene postopke, pripravljene izjave, redni izrazi, pravice uporabnika za dostop do podatkovne povezave, sporočila o napakah itd. So tehnike preprečevanja .

Še ena stvar, ki bi jo morali pomisliti, je smiselno imeti tudi različne baze podatkov za različne namene v aplikaciji.

Še ena stvar je testiranje. Testiranje baze podatkov za različna stanja je tudi najboljši način.

Zaključek

Ustvarjanje baze podatkov je ključnega pomena. Tveganje za pridobivanje informacij v hekerju ni dobro za nobeno aplikacijo. Pri ustvarjanju baze podatkov moramo slediti nekaj preprostim korakom, da preprečimo to izgubo, za to je primerna fraza: "Preprečevanje je boljše kot zdravljenje".

Priporočeni članki

To je vodnik o tem, kaj je SQL vbrizgavanje. Tukaj razpravljamo o vedenju, kako deluje in vrste SQL vbrizgavanja. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Kaj je SQL Server?
  2. Kaj je SQL | Pojasnjen jezik poizvedbe
  3. Kaj je SQL Developer?
  4. Posodobitev ukazov SQL
  5. Redni izrazi na Javi