Testirajte web ranjivosti s prokletom ranjivom web aplikacijom

Sadržaj

Cilj je da i početnici i profesionalni korisnici zainteresirani za analizu i rješavanje sigurnosnih problema mogu staviti svoje znanje, vještine i alate na test u simuliranom okruženju, ova vrsta alati su vrlo korisni za web programere Oni mogu razumjeti probleme koje aplikacija ili web stranica mogu imati te poboljšati programiranje ili tražiti ranjivosti.

Iako je većina programera poduzela mjere opreza protiv potencijalnih ranjivosti, mnoge ranjivosti kao npr Skriptiranje na više web lokacija (XSS) ili SQL injekcije, koji utječu na sigurnost mnogih web stranica, a time i korisnika.

U ovom vodiču ćemo ići instalirati i konfigurirati web stranicu za upotrebu kao testni laboratorij za revizije web sigurnosti, gdje ćemo pronaći različite ranjivosti, čak i češće, koje predlažu različite razine poteškoća u ranjivosti, koje se zatim mogu analizirati.

Koristit ćemo Damn Vulnerabilty Web Application (DVWA), to je web stranica za instaliranje na bilo koji poslužitelj koji imamo, uključujući i lokalni kako bismo mogli raditi testove pentestinga. Možemo ga preuzeti sa službene web stranice.

Nakon preuzimanja potreban nam je web poslužitelj ili lokalni poslužitelj kako je navedeno u vodičima:

  • Kako instalirati Xampp da biste svoje računalo pretvorili u web poslužitelj
  • Prijenosni web poslužitelj Easyphp

Sada nakon preuzimanja zip datoteke Damn Vulnerabilty Web Application (DVWA), raspakiramo je i kopiramo u mapu našeg web poslužitelja, u tom slučaju koristimo Xampp pod Linuxom.

Zatim moramo konfigurirati bazu podataka za to ćemo ići s phpmyadmina.

Ako to želimo učiniti iz prozora terminala, upotrijebit ćemo sljedeću naredbu, kojoj možemo pristupiti putem ssh:

 ssh korisnik @ miip
Prvo ćemo se prijaviti na MySQL poslužitelj iz naredbenog retka sa sljedećom naredbom:
 mysql -u korijen -p
U ovom slučaju, root korisnik je naveden sa -u zastavicom, a zatim se zastavica -p koristi za označavanje da MySQL treba zatražiti lozinku. Unosimo pristupni ključ kako bismo se mogli prijaviti na MYSQL.

Zatim možemo stvoriti bazu podataka iz naredbenog retka:

 stvoriti bazu podataka dvwa;
Zatim idemo u direktorij config, a zatim uređujemo datoteku config.inc.php, ovdje mijenjamo podatke tako da ukazuju na naziv baze podataka, korisnika i lozinku za pristup:
 
Spremamo konfiguraciju i moramo otići u preglednik gdje imamo web i kliknuti na Stvaranje / poništavanje baze podataka za nastavak instalacije.

Zatim ćemo stvoriti podatke baze podataka koju konfiguriramo i možemo vidjeti neke alate koje web donosi.

Nakon instalacije, kada se vratimo na web http: // localhost / dvwa, dobit ćemo zaslon za prijavu:

Za pristup web stranici koristit ćemo sljedeće podatke:

Korisnik: admin
Ključ: lozinka

U lijevom stupcu weba imamo izbornik na kraju možemo vidjeti opciju DVWA SIGURNOSTOdavde možemo konfigurirati razinu poteškoća za ranjivosti, razine sigurnosti su niske, srednje, visoke ili nemoguće.

Razina sigurnosti mijenja razinu ranjivosti DVWA -e:

Niska razina sigurnostiOva je razina sigurnosti potpuno ranjiva i nema nikakvih sigurnosnih mjera, pa će nam omogućiti lakše testiranje tehnika hakiranja. Njegova upotreba služi kao primjer kako se ranjivosti web aplikacija očituju kroz loše prakse kodiranja te služi kao platforma za poučavanje ili učenje osnovnih tehnika eksploatacije, krekiranja i hakiranja.

Srednja razina sigurnostiOva razina služi za prikazivanje ranjivosti, pri čemu programer nije uspio osigurati da kôd i razvoj nemaju ranjivosti.

Visoka razina sigurnostiOva razina ima za cilj da se najnapredniji korisnici suoče sa srednjom poteškoćom, s mješavinom loših programskih praksi u web kodu. Ovdje možemo isprobati napredne tehnike.

Razina sigurnosti nemogućaOva je razina najsigurnija od svih ranjivosti. Koristi se za usporedbu ranjivog izvornog koda sa sigurnim izvornim kodom. Ova razina ima za cilj pokazati kako se web stranica mora ispravno razviti i kako mora reagirati prije mogućih napada.

Postavili smo najnižu razinu kako bismo mogli testirati različite tehnike hakiranja i otkrivanje ranjivosti.

Testirajte Brute Force za razbijanje prijave s vlastitom skriptom
Pristupamo poveznici Brute Force i vidimo da postoji obrazac za prijavu, unosimo bilo koje podatke u korisničko ime i zaporku kako bi pogriješili i vidjeli je li došlo do pogreške.

Kad prijava ne uspije, vidimo url s unesenim podacima, uzimajući URL koji nam prikazuje:
http: // localhost / dvw … vidi & Prijava = Prijava #,

Stoga možemo stvoriti skriptu koja testira različite kombinacije korisnika i lozinke ili koristiti program poput xHydra koji je grafičko sučelje za Hydra ili izravno iz naredbenog retka ako je to jedini pristup koji imamo putem SSH -a do poslužitelja.

Za instaliranje Hydra upotrijebit ćemo sljedeće naredbe:

 sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updatesudo apt-get install hydra hydra-gtk
Nakon instaliranja morat ćemo pretraživati ​​ili stvarati popise korisnika i moguće ključeve u txt formatu ili tražiti rječnik za korištenje kao što smo to učinili u vodiču.

Također tekstualna datoteka s imenima mogućih korisnika, možemo koristiti i neke već funkcionalne baze podataka, poput ovih rječnika skullsecurity.org koji se koriste u mnogim alatima, antivirusima itd., Koji dopuštaju razbijanje ili hakiranje lozinki. Svi izvori podataka mogu se slobodno koristiti.

Zatim ćemo koristiti hidru sa popisima koje imamo pomoću sljedećih naredbi:

 hydra -L /home/innove/usuarios.txt -P /home/innove/claves.txt 192.168.0.11 http -post -form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login : Prijava nije uspjela "-w 10 -V 

Možemo vidjeti da su neki rezultati bili pozitivni, prikazujući zelenom bojom korisnike i lozinku koji su postigli prihvaćenu prijavu. Ako pokušamo s administratorskim korisnikom i lozinkom, ući ćemo da vidimo korisničku ploču

Ranjivost SQL Injection
Na najnižoj razini sigurnosti, web je ranjiv na SQL ubrizgavanje, prije nego što počnemo ubacivati ​​kôd u tekstualno polje, možemo promatrati kôd koji konzultira tablicu u PHP -u ​​koja je ranjiva.

 
Pogreška je u tome što podatke ne bi trebao slati GET, već pomoću POST -a, a zatim se mora provjeriti da li pristigli podaci ne sadrže zlonamjeran kôd.

SQL izraz izravno izvršava ono što stigne bez ikakvih kontrola ili provjere. Dakle, to čini kod ranjivim na SQL injekcije, na primjer možemo dobiti potpuni popis korisnika ako na stranicu za ubrizgavanje SQL -a umjesto ID -a dodamo sljedeći kod:

 1 'ILI 1 = 1 UNION SELECT null, verzija () #
Rezultat će biti popis korisnika.

Također možemo dobiti cijeli popis tablica ako u tekstualno polje primijenimo sljedeći kôd.

 1 'ILI 1 = 1 UNION SELECT null, table_name FROM INFORMATION_SCHEMA.tables

Možemo primijeniti druge kombinacije kako bismo dobili popis korisnika i vidjeli podatke svake tablice.

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave