Metodologije hakiranja web aplikacija

Web aplikacije su programi koji omogućuju korisnicima interakciju s web poslužiteljima. Pokreću se u web preglednicima uz pomoć skripti na strani klijenta i poslužitelja.

Arhitektura web aplikacija sastoji se od:

  • Klijent / prezentacijski sloj
  • Sloj poslovne logike
  • Sloj baze podataka

Klijentski / prezentacijski sloj sastoji se od uređaja na kojima se aplikacija izvodi. Takvi uređaji uključuju prijenosna računala, tablete, pametne telefone itd.

Sloj poslovne logike ima dva sloja:


  • Logički sloj web-poslužitelja koji se sastoji od komponenata koje obrađuju zahtjeve i odgovore i kodiranja koje čita i vraća podatke u preglednik


  • Sloj poslovne logike koji sadrži podatke aplikacije



Sloj baze podataka sastoji se od B2B sloja i poslužitelja baze podataka u kojem su pohranjeni podaci organizacije.

Prijetnje i napadi web aplikacija

OWASP je otvorena zajednica posvećena omogućavanju organizacijama da osmisle, razvijaju, nabavljaju, rade i održavaju programe kojima se može vjerovati.

OWASP Top 10 projekt proizvodi dokument koji opisuje top 10 prijetnji sigurnosti aplikacija.

Najnoviji dokument navodi sljedećih 10 glavnih sigurnosnih prijetnji:

Injekcija

Injection napad je napad u kojem napadač ubrizgava zlonamjerne podatke u naredbe i upite koji se zatim izvršavaju u aplikaciji.

Ovaj napad cilja polja za unos ili ulazne točke aplikacije i omogućuje napadačima izvlačenje osjetljivih podataka.

Najčešće korišteni injekcijski napadi su:

  • SQL ubrizgavanje je napad u kojem napadač ubacuje zlonamjerne SQL upite u aplikaciju
  • Zapovjedno ubrizgavanje je napad u kojem napadač ubacuje zlonamjerne naredbe u aplikaciju
  • LDAP injekcija je napad u kojem napadač ubacuje zlonamjerne LDAP izjave u aplikaciju

Prekinuta autentifikacija

Neispravna provjera autentičnosti odnosi se na prijetnje i ranjivosti u provjeri autentičnosti i upravljanju sesijama.

Napadači iskorištavaju ove ranjivosti kako bi se predstavljali kao njihovi ciljevi.

Neke od postojećih ranjivosti uključuju:

  • ID-ovi sesija u URL-ovima
  • Nešifrirane lozinke
  • Nepravilno postavljena vremenska ograničenja

Izloženost osjetljivim podacima

Prijetnje izloženosti osjetljivim podacima javljaju se u aplikacijama koje za šifriranje i pohranu podataka koriste slabi kôd za šifriranje.

Ova ranjivost omogućuje napadačima da lako razbiju šifriranje i ukradu podatke.

XML vanjski entitet

XML napad na vanjski entitet je napad u kojem napadač koristi prednost loše konfiguriranog XML parsera zbog čega aplikacija analizira XML ulaz koji dolazi iz nepouzdanog izvora.

Neispravna kontrola pristupa

Neispravna kontrola pristupa odnosi se na prijetnje i ranjivosti u kontroli pristupa. Napadači koriste ove ranjivosti kako bi izbjegli provjeru autentičnosti i stekli administratorske privilegije.

Pogrešna konfiguracija sigurnosti

Pogrešna konfiguracija sigurnosti odnosi se na ranjivosti koje postoje u aplikacijama s loše konfiguriranim stogom aplikacija.

Neki od problema koji uzrokuju ranjivosti pogrešne konfiguracije uključuju:

  • Nevalidirana polja za unos
  • Manipulacija obrascima i parametrima
  • Loše postupanje s pogreškama

Cross-Site Scripting (XSS)

Cross-Site Scripting napad je napad u kojem napadač ubacuje skripte u web stranice koje se izvršavaju na ciljnom sustavu.

Nesigurna deserijalizacija

Nesigurna deserializacija odnosi se na ranjivost koju napadači iskorištavaju ubrizgavanjem zlonamjernog koda u serializirane podatke koji se zatim šalju na cilj.

Zbog nesigurne ranjivosti deserijalizacije, zlonamjerni serijski podaci su deserijalizirani bez otkrivanja zlonamjernog koda, što napadaču omogućuje neovlašteni pristup sustavu.

Korištenje komponenata s poznatim ranjivostima

Korištenje komponenata s poznatim ranjivostima omogućuje napadačima da ih iskoriste i izvrše napade.

Nedovoljno bilježenje i praćenje

Nedovoljno zapisivanje i praćenje događa se kada aplikacija ne uspije zabilježiti zlonamjerne događaje i aktivnosti. To uzrokuje poteškoće u otkrivanju napada na sustav.

Metoda hakiranja

Metodologija hakiranja web aplikacija pruža napadačima korake koje treba slijediti za izvršenje uspješnog napada.

Ti su koraci:

Otisak web infrastrukture

Otisak web infrastrukture pomaže napadaču u prikupljanju informacija o ciljanoj web infrastrukturi i prepoznavanju ranjivosti koje se mogu iskoristiti.

U tom procesu napadač izvodi:

  • Otkrivanje poslužitelja da biste saznali više o poslužiteljima koji hostiraju aplikaciju
  • Otkrivanje usluge za utvrđivanje koje usluge se može napadati
  • Identifikacija poslužitelja da biste saznali informacije o poslužitelju, poput verzije i izrade
  • Otkrivanje skrivenog sadržaja za otkrivanje skrivenih sadržaja

Napad web poslužitelja

Informacije prikupljene u koraku otiska omogućavaju hakerima da ih analiziraju, pronađu ranjivosti za iskorištavanje i koriste razne tehnike za pokretanje napada na poslužitelju.

Analiza web aplikacija

Napadači analiziraju ciljanu web aplikaciju kako bi identificirali njene ranjivosti i iskoristili ih.

Da bi hakirali aplikaciju, napadači moraju:

  • Odredite ulazne točke za unos korisnika
  • Prepoznajte tehnologije na strani poslužitelja koje se koriste za generiranje dinamičkih web stranica
  • Prepoznajte funkcionalnost na strani poslužitelja
  • Identificirajte područja napada i povezane ranjivosti

Na strani klijenta kontrolira se izbjegavanje

Napadači pokušavaju zaobići kontrolu nad korisničkim unosima i interakciju na strani klijenta.

Da bi zaobišli kontrole na strani klijenta, napadači pokušavaju:

  • Napadnite skrivena polja obrasca
  • Napadajte proširenja preglednika
  • Pregledajte izvorni kod

Napadi za provjeru autentičnosti

Napadači pokušavaju iskoristiti ranjivosti koje postoje u mehanizmima provjere autentičnosti.

Korištenjem takvih ranjivosti napadači mogu izvršiti:

  • Nabrajanje korisničkog imena
  • Napadi lozinkom
  • Napadi sesije
  • Operativni kolačić

Napadi na autorizaciju

Autorizacijski napad je napad u kojem napadač pristupa aplikaciji putem legitimnog računa koji ima ograničene privilegije, a zatim taj račun koristi za eskalaciju privilegija.

Da bi izvršio autorizacijski napad, napadač koristi sljedeće izvore:

  • MRZITI
  • Neovlašteno podešavanje parametara
  • POST podaci
  • HTTP zaglavlja
  • Kolačići
  • Skrivene oznake

Napadi kontrole pristupa

Napadači analiziraju ciljanu web stranicu pokušavajući saznati detalje o provedenoj kontroli pristupa.

Tijekom ovog postupka napadači pokušavaju saznati tko ima pristup kojim skupovima podataka, tko ima koji nivo pristupa i kako povećati privilegije.

Napadi na upravljanje sjednicama

Napadači iskorištavaju ranjivosti u provjeri autentičnosti i upravljanju sesijama kako bi se lažno predstavljali kao njihovi ciljevi.

Proces generiranja valjanog tokena sesije sastoji se od dva koraka:

  • Predviđanje tokena sesije
  • Neovlašteno miješanje tokena sesije

S važećim tokenom napadači mogu izvoditi napade kao što su MITM, otmice sesija i ponovna reprodukcija sesije.

Napadi ubrizgavanjem

Napadači koriste neovlaštene ulaze u obrazac za ubrizgavanje zlonamjernih upita i naredbi.

Iskorištavanje ranjivosti logike aplikacije

Loše vještine kodiranja mogu učiniti aplikaciju ranjivom zbog svojih logičkih nedostataka. Ako napadač uspije identificirati takve nedostatke, tada će ih moći iskoristiti i pokrenuti napad.

Napadi na povezivanje s bazom podataka

Napadači izvršavaju napade na vezu baze podataka kako bi stekli kontrolu nad bazom podataka i tako stekli pristup osjetljivim informacijama.

Napadi na web usluge

Napadači ciljaju web usluge integrirane u web aplikaciju kako bi pronašli i iskoristili ranjivosti poslovne logike aplikacije.

Zatim koriste razne tehnike za izvršavanje napada na aplikaciju.