Pentesterer web -sårbarheder med Damn Vulnerable Web App

Indholdsfortegnelse

Målet er, at både begyndere og professionelle brugere, der er interesseret i at analysere og løse sikkerhedsproblemer, kan sætte deres viden, færdigheder og værktøjer på prøve i et simuleret miljø, denne type værktøjer er meget nyttige for webudviklere De kan forstå de problemer, som en applikation eller et websted kan have, og forbedre programmeringen eller lede efter sårbarheder.

Selvom de fleste udviklere har taget forholdsregler mod potentielle sårbarheder, er mange sårbarheder som f.eks Cross Site Scripting (XSS) eller SQL -injektioner, som påvirker sikkerheden på mange websteder og derfor af brugere.

I denne vejledning skal vi installere og konfigurere et websted til brug som testlaboratorium til internetsikkerhedsrevisioner, hvor vi finder forskellige sårbarheder, endnu mere almindelige, der foreslår forskellige sværhedsgrader i sårbarheder, som derefter kan analyseres.

Vi vil bruge Damn Vulnerabilty Web Application (DVWA), det er et websted, der skal installeres på enhver server, vi har, herunder en lokal for at kunne udføre pentestingstest. Vi kan downloade det fra dets officielle websted.

Efter at have downloadet den har vi brug for en webserver eller en lokal server som angivet i selvstudierne:

  • Sådan installeres Xampp for at gøre din computer til en webserver
  • Easyphp bærbar webserver

Efter at have downloadet zip -filen for Damn Vulnerabilty Web Application (DVWA), pakker vi den ud og kopierer den til mappen på vores webserver, i så fald bruger vi Xampp under Linux.

Dernæst skal vi konfigurere databasen til dette, vi går fra phpmyadmin.

Hvis vi vil gøre det fra et terminalvindue, vil vi bruge følgende kommando, vi kan få adgang til via ssh:

 ssh bruger @ miip
Først skal vi logge ind på MySQL -serveren fra kommandolinjen med følgende kommando:
 mysql -u root -p
I dette tilfælde er root -brugeren angivet med -u -flag, og derefter bruges -p -flag til at angive, at MySQL skal anmode om en adgangskode. Vi indtaster adgangsnøglen for at kunne logge på MYSQL.

Derefter kan vi oprette databasen fra kommandolinjen:

 oprette database dvwa;
Dernæst går vi til config -biblioteket og redigerer derefter filen config.inc.php, her ændrer vi dataene for at angive navnet på databasen, brugeren og adgangskoden:
 
Vi gemmer konfigurationen, og vi skal gå til den browser, hvor vi har internettet og klikke på Opret / nulstil database for at fortsætte med installationen.

Dernæst opretter vi de data fra databasen, som vi konfigurerer, og vi kan se nogle værktøjer, som internettet bringer.

Efter installationen, når vi går tilbage til internettet http: // localhost / dvwa, får vi en login -skærm:

For at få adgang til webstedet vil vi bruge følgende data:

Bruger: admin
Nøgle: adgangskode

I venstre kolonne på nettet har vi en menu i slutningen, vi kan se muligheden DVWA SIKKERHEDHerfra kan vi konfigurere sværhedsgraden for sårbarheder, sikkerhedsniveauerne er lave, mellemstore, høje eller umulige.

Sikkerhedsniveauet ændrer sårbarhedsniveauet for DVWA:

Lavt sikkerhedsniveauDette sikkerhedsniveau er fuldstændigt sårbart og har ingen sikkerhedsforanstaltninger, så det giver os mulighed for lettere at teste hackingsteknikker. Dets anvendelse er at være som et eksempel på, hvordan webapplikations sårbarheder manifesterer sig gennem dårlige kodningspraksis og tjene som en platform til at undervise eller lære grundlæggende udnyttelse, cracking og hacking teknikker.

Middels sikkerhedsniveauDette niveau tjener til at vise sårbarheder, hvor udvikleren ikke har sikret sig, at koden og udviklingen ikke har nogen sårbarheder.

Højt sikkerhedsniveauDette niveau sigter mod, at de mest avancerede brugere står over for et medium vanskeligt, med en blanding af dårlig programmeringspraksis i webkoden. Her kan vi prøve avancerede teknikker.

Sikkerhedsniveau umuligtDette niveau er det sikreste mod alle sårbarheder. Det bruges til at sammenligne sårbar kildekode med sikker kildekode. Dette niveau har til formål at demonstrere, hvordan et websted skal udvikles korrekt, og hvordan det skal reagere før mulige angreb.

Vi satte det laveste niveau for at kunne teste forskellige hacketeknikker og detektering af sårbarhed.

Test Brute Force at knække et login med dit eget script
Vi får adgang til Brute Force -linket, og vi ser, at der er en loginformular, vi indtaster alle data i brugernavnet og adgangskoden for at få det til at mislykkes og se, om der opstår en fejl.

Når login mislykkes, ser vi en url med de indtastede data og tager URL'en, der viser os:
http: // localhost / dvw … se & Login = Login #,

Derfor kan vi oprette et script, der tester forskellige kombinationer for bruger og adgangskode eller bruge et program som xHydra, som er en grafisk grænseflade for Hydra eller direkte fra kommandolinjen, hvis det er den eneste adgang, vi har via SSH til serveren.

For at installere Hydra bruger vi følgende kommandoer:

 sudo add-apt-repository ppa: pi-rho / securitysudo apt-get updatesudo apt-get install hydra hydra-gtk
Efter installationen bliver vi nødt til at søge eller oprette brugerlister og mulige nøgler i txt -format eller lede efter en ordbog til brug, som vi gjorde i selvstudiet.

Også en tekstfil med navne på mulige brugere, vi kan også bruge en allerede funktionel database, f.eks. Disse skullsecurity.org -ordbøger, der bruges i mange værktøjer, antivirus osv., Som tillader cracking eller hacking af adgangskoder. Alle datakilder er gratis at bruge.

Dernæst vil vi bruge hydra med de lister, vi har ved hjælp af følgende kommandoer:

 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 : Login mislykkedes "-w 10 -V 

Vi kan se, at nogle resultater har været positive og viser grønt de brugere og adgangskode, der opnåede det accepterede login. Hvis vi prøver med admin -brugeren og adgangskoden, vil vi gå ind for at se brugerpanelet

Sårbarhed i SQL -injektion
På det laveste sikkerhedsniveau er internettet sårbart over for SQL -indsprøjtning, inden vi begynder at injicere kode i tekstfeltet, kan vi observere den kode, der konsulterer tabellen i PHP, der er sårbar.

 
Fejlen er, at dataene ikke skal sendes af GET, men ved hjælp af POST og for det andet skal det kontrolleres, at de data, der kommer, ikke indeholder ondsindet kode.

SQL -sætningen udfører direkte det, der kommer uden nogen kontrol eller verifikation. Så dette gør koden sårbar over for SQL -injektioner, for eksempel kan vi få den komplette liste over brugere, hvis vi på SQL -injektionssiden i stedet for et id tilføjer følgende kode:

 1 'ELLER 1 = 1 UNION SELECT null, version () #
Resultatet vil være listen over brugere.

Vi kan også få hele listen over tabeller, hvis vi anvender følgende kode i tekstfeltet.

 1 'ELLER 1 = 1 UNION SELECT null, tabelnavn FRA INFORMATION_SCHEMA.tabeller

Vi kan anvende andre kombinationer for at få en liste over brugere og se dataene i hver tabel.

Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave