Împiedicați vulnerabilitățile web cu Damn Vulnerable Web App

Cuprins

Obiectivul este ca atât utilizatorii începători, cât și cei profesioniști interesați de analiza și rezolvarea problemelor de securitate să își poată pune la încercare cunoștințele, abilitățile și instrumentele într-un mediu simulat, acest tip de instrumentele sunt foarte utile dezvoltatorilor de web Ei pot înțelege problemele pe care le poate avea o aplicație sau un site web și pot îmbunătăți programarea sau pot căuta vulnerabilități.

Deși majoritatea dezvoltatorilor au luat măsuri de precauție împotriva potențialelor vulnerabilități, multe vulnerabilități precum Cross Site Scripting (XSS) sau Injecții SQL, care afectează securitatea multor site-uri web și, prin urmare, a utilizatorilor.

În acest tutorial vom merge instalați și configurați un site web pentru a-l utiliza ca laborator de testare pentru audituri de securitate web, unde vom găsi diferite vulnerabilități, chiar mai frecvente, propunând diferite niveluri de dificultate în vulnerabilități, care pot fi apoi analizate.

Vom folosi Damn Vulnerabilty Web Application (DVWA), este un site web pentru a instala pe orice server pe care îl avem, inclusiv unul local pentru a putea face teste de pentesting. Îl putem descărca de pe site-ul său oficial.

După ce l-am descărcat, avem nevoie de un server web sau un server local, așa cum este indicat în tutoriale:

  • Cum se instalează Xampp pentru a vă transforma computerul într-un server web
  • Server web portabil Easyphp

Acum, după descărcarea fișierului zip al Damn Vulnerabilty Web Application (DVWA), îl dezarhivăm și îl copiem în folderul serverului nostru web, în ​​acest caz folosim Xampp sub Linux.

În continuare trebuie să configurăm baza de date pentru aceasta, vom trece de la phpmyadmin.

Dacă vrem să o facem dintr-o fereastră terminal vom folosi următoarea comandă, putem accesa prin ssh:

 utilizator ssh @ miip
Mai întâi ne vom conecta la serverul MySQL din linia de comandă cu următoarea comandă:
 mysql -u root -p
În acest caz, utilizatorul root este specificat cu steagul -u, iar apoi steagul -p este utilizat pentru a indica faptul că MySQL ar trebui să solicite o parolă. Intrăm cheia de acces pentru a ne putea conecta la MYSQL.

Apoi putem crea baza de date din linia de comandă:

 creați baza de date dvwa;
Apoi mergem în directorul de configurare și apoi edităm fișierul config.inc.php, aici modificăm datele pentru a indica numele bazei de date, utilizatorul și parola de acces:
 
Salvăm configurația și trebuie să mergem la browserul unde avem web-ul și să facem clic pe Creați / Resetați baza de date pentru a continua cu instalarea.

În continuare vom crea datele bazei de date pe care le configurăm și putem vedea câteva instrumente pe care le aduce webul.

Apoi, după instalare, când ne întoarcem la http: // localhost / dvwa, vom primi un ecran de conectare:

Pentru a accesa site-ul web vom folosi următoarele date:

Utilizator: admin
Cheie: parola

În coloana din stânga a webului avem un meniu la final putem vedea opțiunea SECURITATE DVWADe aici putem configura nivelul de dificultate pentru vulnerabilități, nivelurile de securitate sunt scăzute, medii, ridicate sau imposibile.

Nivelul de securitate modifică nivelul de vulnerabilitate al DVWA:

Nivel de securitate scăzutAcest nivel de securitate este complet vulnerabil și nu are nicio măsură de securitate, așa că ne va permite să testăm mai ușor tehnicile de hacking. Utilizarea acestuia trebuie să fie un exemplu al modului în care vulnerabilitățile aplicațiilor web se manifestă prin practici de codare proaste și să servească drept platformă pentru a preda sau învăța tehnici de exploatare, cracking și hacking de bază.

Nivel mediu de securitateAcest nivel servește la afișarea vulnerabilităților, unde dezvoltatorul nu a reușit să se asigure că codul și dezvoltarea nu au vulnerabilități.

Nivel ridicat de securitateAcest nivel urmărește ca cei mai avansați utilizatori să se confrunte cu o dificultate medie, cu un amestec de practici de programare proaste în codul web. Aici putem încerca tehnici avansate.

Nivel de securitate imposibilAcest nivel este cel mai sigur împotriva tuturor vulnerabilităților. Este folosit pentru a compara codul sursă vulnerabil cu codul sursă securizat. Acest nivel își propune să demonstreze modul în care un site web trebuie dezvoltat corect și cum trebuie să răspundă înainte de posibile atacuri.

Am stabilit cel mai mic nivel pentru a putea testa diferite tehnici de hacking și detectarea vulnerabilităților.

Testează Forța Brută pentru a sparge o autentificare cu propriul script
Accesăm linkul Brute Force și vedem că există un formular de autentificare, introducem orice date în numele de utilizator și parola pentru a face eșec și pentru a vedea dacă apare o eroare.

Când autentificarea eșuează, vom vedea o adresă URL cu datele introduse, luând adresa URL care ne arată:
http: // localhost / dvw … vezi & Login = Login #,

Prin urmare, putem crea un script care testează diferite combinații pentru utilizator și parolă sau putem utiliza un program precum xHydra care este o interfață grafică pentru Hydra sau direct din linia de comandă dacă acesta este singurul acces pe care îl avem prin SSH la server.

Pentru a instala Hydra vom folosi următoarele comenzi:

 sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updatesudo apt-get install hydra hydra-gtk
După instalare, va trebui să căutăm sau să creăm listele de utilizatori și posibilele chei în format txt sau să căutăm un dicționar de utilizat așa cum am făcut în tutorial.

De asemenea, un fișier text cu numele unor posibili utilizatori, putem folosi, de asemenea, unele baze de date deja funcționale, cum ar fi aceste dicționare skullsecurity.org, care sunt utilizate în multe instrumente, antivirus etc., care permit cracarea sau piratarea parolelor. Toate sursele de date sunt gratuite.

Apoi vom folosi hydra cu listele pe care le avem folosind următoarele comenzi:

 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 : Conectarea a eșuat "-w 10 -V 

Putem vedea că unele rezultate au fost pozitive, arătând în verde utilizatorii și parola care au obținut datele de conectare acceptate. Dacă încercăm cu utilizatorul și parola de administrator vom intra pentru a vedea panoul utilizatorului

Vulnerabilitate SQL Injection
La cel mai scăzut nivel de securitate, web-ul este vulnerabil la injecția SQL, înainte de a începe să injectăm cod în câmpul text, putem observa codul care consultă tabelul în PHP care este vulnerabil.

 
Eroarea este că datele nu trebuie trimise de GET, ci folosind POST și, în al doilea rând, trebuie verificat dacă datele care sosesc nu conțin cod rău intenționat.

Instrucțiunea SQL execută direct ceea ce ajunge fără niciun fel de controale sau verificări. Astfel, acest lucru face ca codul să fie vulnerabil la injecțiile SQL, de exemplu, putem obține lista completă a utilizatorilor dacă în pagina de injecție SQL în loc de un ID adăugăm următorul cod:

 1 'SAU 1 = 1 UNION SELECT null, versiunea () #
Rezultatul va fi lista de utilizatori.

De asemenea, putem obține întreaga listă de tabele dacă aplicăm următorul cod în câmpul text.

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

Putem aplica alte combinații pentru a obține lista de utilizatori și pentru a vedea datele fiecărui tabel.

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave