Pestestind atacul și apărarea aplicațiilor web cu bWAPP

bWAPP este un site web care a fost dezvoltat cu vulnerabilități, astfel încât atât începătorii, cât și experții pot efectua practici de pentesting și de hacking etic. Poate fi găzduit pe Linux sau Windows pe Apache sau IIS și MySQL. Este acceptat în WAMP sau XAMPP. O altă posibilitate este de a utiliza o mașină virtuală care funcționează pentru VMware sau pentru VirtualBox.

bWAPP este gratuit și deschis, poate fi descărcat în două versiuni, una pentru a fi utilizată local și cealaltă pentru instalare într-o mașină virtuală. Site-ul este dezvoltat în PHP și MySQL, deci este multi-platformă. Descărcăm instalarea bWAPP local, dacă dorim să instalăm într-o mașină virtuală, proiectul este Bee-Box.

Bee-box este o mașină virtuală Linux cu totul preinstalat. În acest fel, trebuie doar să explorăm toate vulnerabilitățile bWAPP fără a risca să ștergem site-ul web bWAPP. De asemenea, cu mașina virtuală putem încerca să obținem acces root.

bWAPP are mai mult de 100 de bug-uri Pentru a investiga și descoperi, acoperă toate vulnerabilitățile web cunoscute majore, inclusiv toate riscurile de securitate. Proiectul nu numai că permite descoperirea vulnerabilităților, dar face posibilă găsirea soluției.

În acest tutorial vom instala versiunea Bee-Box a bWAPPPentru a face acest lucru, dezarhivăm fișierul pe care l-am descărcat și creăm un folder cu multe fișiere vmdk pe serverul nostru local. Apoi vom crea mașina virtuală care atribuie o versiune Linux Ubuntu pe 32 de biți.

Apoi trebuie să selectăm fișierul descărcat numit bee-box.vdmk

Înainte de a porni mașina virtuală, amintiți-vă că va trebui să configurăm rețeaua, facem acest lucru de la Setare pentru a avea o adresă IP și a putea accesa mașina virtuală de pe alt computer.

Facem clic pe create și apoi pe Start, astfel încât mașina virtuală să înceapă să funcționeze, odată încărcată vom vedea desktopul.

Apoi vom deschide terminalul pentru a vedea ce este IP-ul folosind comanda ifconfig.

Putem vedea că IP-ul în acest caz este 192.168.0.14, dacă testăm acel IP pe computer în afara mașinii virtuale, ar trebui să putem accesa web-ul:

 http://192.168.0.14/bWAPP
Iar rezultatul va fi următorul:

Apoi putem începe cu pagina de autentificare, în mod implicit utilizatorul este albină și parola este o eroare pentru a accesa panoul de control. În meniul Bugs vom avea mai multe exemple de utilizat și testat unele vulnerabilități de la cele mai simple la cele mai complexe. Să vedem câteva vulnerabilități în funcție de tipul de atac.

vulnerabilitățile sunt împărțite în categorii sau capitole care sunt următoarele:

A1 InjecțiiAici sunt grupate vulnerabilitățile Injecție HTML, SQL, XSS, XPATH și toate cele care au legătură cu trimiterea parametrilor prin browsere.

Autentificare și sesiuni de pauză A2Aici se pare încălcați captcha-urile și formularele de autentificare folosind tehnici de înlocuire a adreselor URL, captarea parametrilor și utilizarea ID-ului de sesiune.

A3 Cross Site Scripting (XSS)Aici sunt Vulnerabilități legate de XSS care nu sunt foarte periculoase, ci mai degrabă enervante.

A4 Obiecte și directoare nesigureAici este vorba modificați parametrii din legături din cod înainte de a trimite formularul.

A5 Securitate și configurareAici vom vedea unele atacuri precum DDOS și atacul de mijloc, care va căuta să afecteze servicii precum poșta și serviciile care funcționează.

A6 Expunerea datelor sensibileAici vom vedea o serie de vulnerabilități care permit datele serverului sunt expuse în browser.

Acestea sunt câteva dintre vulnerabilități, în acest tutorial ne vom concentra pe cele mai cunoscute atacuri și posibilitatea de a prelua controlul serverului.

1. Injecție HTML


Injecția reflectată HTML este ceea ce vă permite să inserați cod HTML într-un câmp text și apoi să îl afișați pe web. Selectăm prima metodă de injecție prin GET, avem două casete de text, dacă introducem, de exemplu, un link în fiecare:
 Mesaj urgent | Vânzările dvs.
La trimiterea formularului vom vedea mai jos că ambele linkuri sunt afișate și lăsăm să aștepte ca cineva să facă clic. Putem încerca și metoda POST.

MARI

O altă problemă a necontrolării introducerii datelor HTML este că am putea trimite un formular făcându-l pe utilizator să creadă că trebuie să se conecteze sau să introducă unele date și să trimită aceste date către altă pagină.

 Ai fost deconectat. 
Introduceți numele de utilizator și parola pentru a continua utilizatorul:
cheie:

MARI

2. Injecție SQL


Să vedem un alt atac, cum ar fi SQL Injection, dacă căutăm BUG pentru opțiunea SQL Injection (GET / Search), în această secțiune putem căuta filme, de exemplu Iron Man, rezultând datele filmului.

MARI

Apoi putem încerca să injectăm cod SQL pentru a testa dacă baza de date este vulnerabilă, pentru aceasta folosim următorul cod care va returna lista bazelor de date dacă:

 iron man 'union select 1, table_name, 3,4,5,6,7 din INFORMATION_SCHEMA.TABLES unde table_schema = database () -'
Rezultatul este lista tabelelor, prin urmare baza de date este vulnerabilă:

MARI

Știind că baza de date este vulnerabilă, putem folosi câteva tehnici pe care le-am văzut în tutorialul SQLMAP, instrumentul SQL Injection și Ethical database hacking, unde ajungem la nivelul rădăcină în căutarea cheilor de administrator.

Din fereastra terminalului scriem următoarea comandă, folosim pagina pe care o căutăm pentru film, deoarece are un parametru care poate fi vulnerabil.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --dbs

Ne arată bazele de date, una dintre ele este bWAPP, prin urmare vom încerca să obținem lista tabelelor știind că motorul bazei de date este MySQL 5. Pentru a obține lista tabelelor vom folosi următoarea comandă.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -tables

Putem vedea că listează toate tabelele, nu numai de pe web, ci și din sistem, astfel încât să putem obține datele de la administratorul Linux. Putem exploata, de asemenea, sesiunea PHP folosind Firebug, putem vedea numărul sesiunii, deoarece la crearea unui utilizator sau conectarea sau generarea unui conținut dinamic, cum ar fi o căutare, răspunsul serverului va crea o sesiune PHPS.

MARI

Folosind comanda --utilizatori iar sesiunea sau cu comanda fără sesiune vom putea vedea utilizatorii sistemului.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --utilizatori
O altă comandă de opțiune cu ID de sesiune:
 sqlmap -u „http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --cookie = ”PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0” --users

În continuare vom căuta utilizatorii sistemului folosind următoarea comandă:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is-dba --privileges --dbs -dump 
Drept urmare, vom obține tabele în care există o parolă, unul dintre aceștia sunt utilizatorii care au datele de administrator și altul sunt eroii de tabel și utilizatorii (utilizatorii) pe care îi vom folosi pentru a vă conecta ca utilizatori.

Tabelul utilizatorilor conține datele administratorului site-ului web:

În continuare vom obține parola de root a utilizatorilor pe care îi găsim mai sus, pentru aceasta folosim următoarea comandă:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current-user --is-dba --is-dba --privileges --dbs - dump
La sfârșitul comenzilor printr-un atac de forță brută, constatăm că parola administratorului sistemului este o eroare și că utilizatorul este root.

Vom încerca de la terminal, să ne conectăm prin ssh la mașina virtuală pentru a prelua controlul de la distanță al computerului folosind următoarea comandă:

 ssh [email protected]
Rezultatul utilizării utilizatorului root și a parolei de eroare este conexiunea cu permisiunile administratorului la mașina virtuală.

Apoi testăm dacă ne putem conecta la secțiunea eroi și utilizatori cu datele obținute anterior, de exemplu utilizatorul neo și parola trinity.

Am reușit să accesăm cu acest utilizator date fără probleme. Dacă folosim tabelul de utilizatori, ne putem loga și.

3. Injecție HTML / XPATH


Unul dintre cele mai puțin gândite atacuri este prin acele browsere care permit editarea codului, dacă schimbăm un link către un site rău intenționat, utilizatorul nu va observa și schimbarea se va pierde atunci când web-ul este reîmprospătat.

De exemplu, vom schimba parola și vom face clic dreapta pentru a deschide un inspector sau un editor de cod și pentru a schimba adresa URL change_password.php la http://google.com și a închide editorul

MARI

Astfel, atunci când utilizatorul face clic pe acel link, acesta va fi redirecționat către o altă pagină, este foarte ineficient, deoarece la reîmprospătarea sau schimbarea paginii, linkul revine la original. Aceasta trebuie să ne uităm înainte de a face clic pe un link care ne duce la un site securizat sau în același domeniu.

4. Injecție laterală server


Injecția pe partea de server este atunci când un site web este vulnerabil și permite introducerea comenzilor dintr-o limbă sau din sistemul de operare pentru a executa acțiuni pe server.

Un atacator trimite coduri rău intenționate sau o comandă printr-un câmp text al unei aplicații web care este rulată de serverul web. Să vedem un exemplu care vă va permite să listați directoare folosind comanda Linux ls, pe care o vom scrie după cum urmează:

 

MARI

Rezultatul va fi lista tuturor directoarelor de pe server, deci trebuie să verificăm dacă nu se pot introduce comenzi.

MARI

Unul dintre instrumentele pe care ni le propune proiectul bWAPP este ZAP (Zed Attack Proxy), am văzut acest instrument în tutorial Scanează o vulnerabilitate a site-ului web cu ZAP, este utilizat pe scară largă pentru a scana vulnerabilitățile și a efectua teste de penetrare pe site-uri web. Putem descărca cea mai actualizată versiune de pe următorul link:

DESCĂRCAȚI ZAP

Alegeți versiunea în funcție de sistemul de operare pe care îl avem sau o versiune multiplatformă dezvoltată în Java. Odată instalat, vom încerca să scanăm web-ul bWAPP cu ZAP și să căutăm câteva vulnerabilități.

MARI

Când pornim ZAP și efectuăm o scanare vom vedea că detectează majoritatea vulnerabilităților, pentru a defini regulile de scanare putem accesa meniul Analizați> Reguli de scanare și apoi facem dublu clic pe Politica implicită.

Să vedem într-una dintre paginile de conectare a constatat că nivelul utilizatorului este trimis ca parametru, în acest caz administratorul.

MARI

De asemenea, putem folosi filtrele așa cum am văzut în tutorialul ZAP pentru a face injecții SQL și alte atacuri.

Securitatea aplicațiilor web este un aspect foarte important, în afară de un design și un conținut bun. bWAPP este o platformă care ne va permite să cunoaștem și să testăm multe vulnerabilități, apoi să aplicăm aceste cunoștințe pe site-ul nostru web și să servească, de asemenea, astfel încât specialiștii, dezvoltatorii și studenții să poată descoperi și preveni vulnerabilitățile web.

bWAPP este utilizat pe scară largă pentru testarea penetrării aplicațiilor web și proiectele de hacking etic. bWAPP acoperă toate vulnerabilitățile web cunoscute majore, inclusiv toate riscurile proiectului OWASP Top 10, care colectează vulnerabilități de la an la an în 10 categorii.

În cele din urmă, vă recomandăm acest articol cu ​​o explicație a tipuri de atacuri cibernetice.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave