Pentesting angripe og forsvare webapplikasjoner med bWAPP

bWAPP er et nettsted som er utviklet med sårbarheter slik at både nybegynnere og eksperter kan utføre pentesting og etisk hackingpraksis. Det kan hostes på Linux eller Windows på Apache eller IIS og MySQL. Den støttes i WAMP eller XAMPP. En annen mulighet er å bruke en virtuell maskin som fungerer for VMware eller for VirtualBox.

bWAPP er gratis og åpen, den kan lastes ned i to versjoner, en som skal brukes lokalt og den andre for å installere i en virtuell maskin. Nettstedet er utviklet i PHP og MySQL, så det er plattformplattform. Vi laster ned installere bWAPP lokalt, hvis vi vil installere i en virtuell maskin er prosjektet Bee-Box.

Bee-box er en virtuell Linux-maskin med alt forhåndsinstallert. På denne måten trenger vi bare å utforske alle bWAPP -sårbarhetene uten å risikere å ødelegge bWAPP -nettstedet. Også med den virtuelle maskinen kan vi prøve å få root -tilgang.

bWAPP har mer enn 100 feil For å undersøke og oppdage dekker den alle større kjente nettsårbarheter, inkludert alle sikkerhetsrisikoer. Prosjektet lar ikke bare sårbarheter bli oppdaget, men gjør det også mulig å finne løsningen.

I denne opplæringen vi vil installere Bee-Box-versjonen av bWAPPFor å gjøre dette pakker vi ut filen vi lastet ned og lager en mappe med mange vmdk -filer på vår lokale server. Deretter vil vi lage den virtuelle maskinen som tildeler en 32 -biters Linux Ubuntu -versjon.

Deretter må vi velge den nedlastede filen som heter bee-box.vdmk

Husk at før vi starter den virtuelle maskinen må vi konfigurere nettverket, vi gjør dette fra Innstilling for å ha en IP -adresse og få tilgang til den virtuelle maskinen fra en annen datamaskin.

Vi klikker på opprett og deretter på Start, slik at den virtuelle maskinen begynner å fungere. Når den er lastet inn, ser vi skrivebordet.

Deretter åpner vi terminalen for å se hva IP -en bruker kommandoen ifconfig.

Vi kan se at IP -en i dette tilfellet er 192.168.0.14, hvis vi tester den IP -en på datamaskinen utenfor den virtuelle maskinen, bør vi ha tilgang til nettet:

 http://192.168.0.14/bWAPP
Og resultatet blir følgende:

Deretter kan vi starte med påloggingssiden, som standard er brukeren bi og passordet er feil for å få tilgang til kontrollpanelet. Innenfor Bugs -menyen vil vi ha flere eksempler å bruke og teste noen sårbarheter fra de enkleste til de mest komplekse. La oss se noen sårbarheter i henhold til angrepstypen.

De sårbarheter er delt inn i kategorier eller kapitler som er følgende:

A1 InjeksjonerHer er sårbarhetene i HTML -injeksjon, SQL, XSS, XPATH og alle de som har å gjøre med å sende parametere gjennom nettlesere.

A2 Pauseautentisering og økterHer ser det ut som bryte captchas og påloggingsskjemaer ved hjelp av URL -erstatningsteknikker, parameterfangst og bruk av økt -ID.

A3 Cross Site Scripting (XSS)Her er XSS-relaterte sårbarheter som ikke er veldig farlige, men ganske irriterende.

A4 Usikre objekter og katalogerHer handler det om endre parametere i koblinger fra kode før du sender inn skjemaet.

A5 Sikkerhet og konfigurasjonHer får vi se noen angrep som DDOS og midtangrep, som vil søke å påvirke tjenester som post og tjenester som fungerer.

A6 Eksponering av sensitive dataHer vil vi se en rekke sårbarheter som tillater serverdata blir avslørt i nettleseren.

Dette er noen av sårbarhetene. I denne opplæringen vil vi fokusere på de mest kjente angrepene og muligheten til å ta kontroll over serveren.

1. HTML -injeksjon


HTML Reflected Injection er det som lar deg sette inn HTML -kode i et tekstfelt og deretter vise den på nettet. Vi velger den første Injection by GET -metoden, vi har to tekstbokser, hvis vi for eksempel skriver inn en lenke i hver enkelt:
 Haster melding | Salget ditt
Når du sender skjemaet ser vi nedenfor at begge koblingene vises og lar det vente på at noen skal klikke. Vi kan også prøve POST -metoden.

FORSTØRRE

Et annet problem med ikke å kontrollere input av HTML -data er at vi kan sende et skjema som får brukeren til å tro at de må logge på eller skrive inn noen data, og sende disse dataene til en annen side.

 Du har blitt frakoblet. 
Skriv inn brukernavn og passord for å fortsette brukeren:
nøkkel:

FORSTØRRE

2. SQL -injeksjon


La oss se et annet angrep som SQL Injection, hvis vi søker BUG etter alternativet SQL Injection (GET / Search), kan vi i denne delen søke etter filmer, for eksempel Iron Man, noe som resulterer i filmdata.

FORSTØRRE

Deretter kan vi prøve å injisere SQL -kode for å teste om databasen er sårbar, for dette bruker vi følgende kode som vil returnere listen over databaser hvis:

 iron man 'union select 1, table_name, 3,4,5,6,7 fra INFORMATION_SCHEMA.TABLES hvor table_schema = database () -'
Resultatet er listen over tabeller, derfor er databasen sårbar:

FORSTØRRE

Når vi vet at databasen er sårbar, kan vi bruke noen teknikker som vi så i opplæringen SQLMAP, SQL Injection tool og Ethical database hacking, der vi når rotnivået på jakt etter administratornøklene.

Fra terminalvinduet skriver vi følgende kommando, vi bruker siden vi leter etter filmen siden den har en parameter som kan være sårbar.

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

Den viser oss databasene, en av dem er bWAPP, derfor vil vi prøve å få tak i tabellelisten vel vitende om at databasemotoren er MySQL 5. For å få tak i listen over tabeller bruker vi følgende kommando.

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

Vi kan se at den viser alle tabellene, ikke bare fra nettet, men også fra systemet, slik at vi kan hente dataene fra Linux -administratoren. Vi kan også utnytte PHP -økten ved hjelp av Firebug, vi kan se sesjonsnummeret, siden når du oppretter en bruker eller logger på eller genererer dynamisk innhold, for eksempel et søk, vil serverens svar opprette en PHPSession.

FORSTØRRE

Bruker kommando --brukere og økten eller med kommandoen uten økt vil vi kunne se systembrukerne.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --brukere
En annen alternativkommando med økt -ID:
 sqlmap -u “http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search” --cookie = ”PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0” --brukere

Deretter vil vi se etter systembrukerne ved å bruke følgende kommando:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is -dba -privilegier --dbs -dump 
Som et resultat vil vi skaffe tabeller der det er et passord, en av dem er brukere som har administratordata og en annen er tabellheltene og brukerne (brukerne) som vi vil bruke for å logge på som brukere.

Brukertabellen inneholder nettstedsadministratordata:

Deretter skal vi skaffe rotpassordet til brukerne som vi finner ovenfor, for dette bruker vi følgende kommando:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current -user --is -dba --is -dba -privilegier --dbs - dump
På slutten av kommandoene gjennom et brute force -angrep finner vi ut at systemadministratorpassordet er feil og brukeren er root.

Vi skal prøve fra terminalen, koble via ssh til den virtuelle maskinen for å ta fjernkontroll av datamaskinen ved å bruke følgende kommando:

 ssh [email protected]
Resultatet ved bruk av rotbrukeren og feilpassordet er forbindelsen med administratortillatelser til den virtuelle maskinen.

Deretter tester vi om vi kan logge inn på helter og brukere -delen med dataene som er innhentet tidligere, for eksempel neo -brukeren og treenighetspassordet.

Vi klarte å få tilgang til disse brukerdataene uten problemer. Hvis vi bruker brukertabellen, kan vi også logge inn.

3. HTML / XPATH injeksjon


En av de minst tenkte på angrep er gjennom de nettleserne som tillater kodedigering. Hvis vi endrer en lenke til et ondsinnet nettsted, vil ikke brukeren legge merke til det og endringen vil gå tapt når nettet oppdateres.

For eksempel kommer vi til å endre passord og høyreklikke for å åpne en inspektør eller kodeditor og endre URL -adressen change_password.php til http://google.com og lukke redaktøren

FORSTØRRE

Således, når brukeren klikker på den lenken, vil de bli omdirigert til en annen side, det er veldig ineffektivt siden når du oppdaterer eller endrer siden, går lenken tilbake til originalen. Dette er for oss å se før vi klikker på en lenke som tar oss til et sikkert nettsted eller innenfor samme domene.

4. Injeksjon på serversiden


Injeksjon på serversiden er når et nettsted er sårbart og gjør det mulig å skrive inn kommandoer fra et språk eller operativsystemet for å utføre handlinger på serveren.

En angriper sender ondsinnet kode eller en kommando gjennom et tekstfelt i et webprogram som kjøres av webserveren. La oss se et eksempel som lar deg liste kataloger ved hjelp av Linux ls -kommandoen, som vi vil skrive som følger:

 

FORSTØRRE

Resultatet blir listen over alle katalogene på serveren, så vi må kontrollere at ingen kommandoer kan legges inn.

FORSTØRRE

Et av verktøyene som bWAPP -prosjektet foreslår for oss er ZAP (Zed Attack Proxy), vi så dette verktøyet i opplæringen Skann et nettstedssårbarhet med ZAP, det er mye brukt til å skanne sårbarheter og utføre penetrasjonstester på nettsteder. Vi kan laste ned den mest oppdaterte versjonen fra følgende lenke:

LAST NED ZAP

Velg versjonen i henhold til operativsystemet vi har eller en multiplatform -versjon utviklet i Java. Når den er installert, prøver vi å skanne bWAPP -nettet med ZAP og se etter noen sårbarheter.

FORSTØRRE

Når vi starter ZAP og utfører en skanning, vil vi se at den oppdager de fleste sårbarhetene, for å definere skanneregler kan vi gå til menyen Analyser> Skannregler og så dobbeltklikker vi på Standardpolicy.

La oss se på en av påloggingssidene det har funnet ut at brukernivået sendes som en parameter, i dette tilfellet administratoren.

FORSTØRRE

Vi kan også bruke filtrene som vi så i ZAP -opplæringen for å utføre SQL -injeksjon og andre angrep.

Nettapplikasjonssikkerhet er et veldig viktig aspekt bortsett fra god design og innhold. bWAPP er en plattform som lar oss kjenne og teste mange sårbarheter, og deretter bruke den kunnskapen på nettstedet vårt og også tjene slik at spesialister, utviklere og studenter kan oppdage og forhindre nettsårbarheter.

bWAPP er mye brukt for penetreringstesting av webapplikasjoner og etiske hackingprosjekter. bWAPP dekker alle større kjente nettsårbarheter, inkludert alle risikoene ved OWASP Top 10 -prosjektet, som samler sårbarheter fra år til år i 10 kategorier.

Til slutt anbefaler vi denne artikkelen med en forklaring på typer cyberangrep.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave