Pentesterar att attackera och försvara webbapplikationer med bWAPP

bWAPP är en webbplats som har utvecklats med sårbarheter så att både nybörjare och experter kan utföra pentester och etiska hackningsmetoder. Det kan vara värd på Linux eller Windows på Apache eller IIS och MySQL. Det stöds i WAMP eller XAMPP. En annan möjlighet är att använda en virtuell maskin som fungerar för VMware eller för VirtualBox.

bWAPP är gratis och öppen, den kan laddas ner i två versioner, en som ska användas lokalt och den andra för att installera i en virtuell dator. Webbplatsen är utvecklad i PHP och MySQL så det är plattformsoberoende. Vi laddar ner installera bWAPP lokalt, om vi vill installera i en virtuell dator är projektet Bee-Box.

Bee-box är en virtuell Linux-maskin med allt förinstallerat. På så sätt behöver vi bara utforska alla bWAPP -sårbarheter utan att riskera att förstöra bWAPP -webbplatsen. Även med den virtuella maskinen kan vi försöka få root -åtkomst.

bWAPP har mer än 100 buggar För att undersöka och upptäcka täcker det alla större kända webbproblem, inklusive alla säkerhetsrisker. Projektet tillåter inte bara att sårbarheter upptäcks, utan gör det också möjligt att hitta lösningen.

I denna handledning vi kommer att installera Bee-Box-versionen av bWAPPFör att göra detta packar vi upp filen vi laddade ner och skapar en mapp med många vmdk -filer på vår lokala server. Därefter skapar vi den virtuella maskinen som tilldelar en 32 -bitars Linux Ubuntu -version.

Därefter måste vi välja den nedladdade filen som heter bee-box.vdmk

Innan du startar den virtuella maskinen, kom ihåg att vi måste konfigurera nätverket, vi gör detta från Miljö för att ha en IP -adress och kunna komma åt den virtuella maskinen från en annan dator.

Vi klickar på skapa och sedan på Start, så att den virtuella maskinen börjar fungera, när den är laddad ser vi skrivbordet.

Därefter öppnar vi terminalen för att se vad IP: n använder med kommandot ifconfig.

Vi kan se att IP: n i det här fallet är 192.168.0.14, om vi testar den IP: n utanför datorn skulle vi kunna komma åt webben:

 http://192.168.0.14/bWAPP
Och resultatet blir följande:

Sedan kan vi börja med inloggningssidan, som standard är användaren bi och lösenordet är fel för att komma åt kontrollpanelen. Inom Bugs -menyn kommer vi att ha flera exempel att använda och testa några sårbarheter från de enklaste till de mest komplexa. Låt oss se några sårbarheter beroende på typen av attack.

De sårbarheter delas in i kategorier eller kapitel som är följande:

A1 InjektionerHär grupperas sårbarheterna för HTML -injektion, SQL, XSS, XPATH och alla de som har att göra med att skicka parametrar via webbläsare.

A2 Pausautentisering och sessionerHär ser det ut som bryta mot captchas och inloggningsformulär med hjälp av URL -ersättningstekniker, parameterinsamling och användning av sessions -ID.

A3 Cross Site Scripting (XSS)Här är XSS-relaterade sårbarheter som inte är särskilt farliga men ganska irriterande.

A4 Osäkra objekt och katalogerHär handlar det om ändra parametrar i länkar från kod innan du skickar in formuläret.

A5 Säkerhet och konfigurationHär får vi se vissa attacker som DDOS och mellanattack, som kommer att försöka påverka tjänster som post och tjänster som fungerar.

A6 Exponering av känsliga uppgif.webpterHär kommer vi att se en serie sårbarheter som tillåter serverdata exponeras i webbläsaren.

Detta är några av sårbarheterna, i den här självstudien kommer vi att fokusera på de mest kända attackerna och möjligheten att ta kontroll över servern.

1. HTML -injektion


HTML Reflected Injection är det som låter dig infoga HTML -kod i ett textfält och sedan visa den på webben. Vi väljer den första Injection by GET -metoden, vi har två textrutor, om vi till exempel anger en länk i var och en:
 Brådskande meddelande | Din försäljning
När du skickar formuläret ser vi nedan att båda länkarna visas och låter det vänta på att någon ska klicka. Vi kan också prova POST -metoden.

FÖRSTORA

Ett annat problem med att inte kontrollera inmatningen av HTML -data är att vi kan skicka ett formulär som får användaren att tro att de måste logga in eller ange vissa data och skicka den till en annan sida.

 Du har blivit frånkopplad. 
Ange ditt användarnamn och lösenord för att fortsätta användaren:
nyckel:

FÖRSTORA

2. SQL -injektion


Låt oss se en annan attack som SQL Injection, om vi söker BUG efter alternativet SQL Injection (GET / Search) kan vi i det här avsnittet söka efter filmer, till exempel Iron Man, vilket resulterar i filmdata.

FÖRSTORA

Sedan kan vi försöka injicera SQL -kod för att testa om databasen är sårbar, för detta använder vi följande kod som returnerar listan över databaser om:

 iron man 'union select 1, table_name, 3,4,5,6,7 from INFORMATION_SCHEMA.TABLES where table_schema = database () -'
Resultatet är en tabellista, därför är databasen sårbar:

FÖRSTORA

Genom att veta att databasen är sårbar kan vi använda några tekniker som vi såg i självstudien SQLMAP, SQL Injection -verktyget och Ethical database hacking, där vi når rotnivån och letar efter administratörsnycklarna.

Från terminalfönstret skriver vi följande kommando, vi använder sidan som vi letar efter filmen eftersom den har en parameter som kan vara sårbar.

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

Det visar oss databaserna, en av dem är bWAPP, därför kommer vi att försöka få fram tabellistan med vetskap om att databasmotorn är MySQL 5. För att få listan över tabeller använder vi följande kommando.

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

Vi kan se att det listar alla tabeller, inte bara från webben, utan också från systemet, så att vi kan få data från Linux -administratören. Vi kan också utnyttja PHP -sessionen med Firebug och vi kan se sessionsnumret, eftersom när du skapar en användare eller loggar in eller genererar något dynamiskt innehåll, till exempel en sökning, kommer servernas svar att skapa en PHPSession.

FÖRSTORA

Med kommando --användare och sessionen eller med kommandot utan session kommer vi att kunna se systemanvändarna.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --användare
Ett annat alternativkommando med sessions -ID:
 sqlmap -u “http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search” --cookie = ”PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0” --användare

Därefter letar vi efter systemanvändare med följande kommando:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is -dba -privilegier --dbs -dump 
Som ett resultat kommer vi att få tabeller där det finns ett lösenord, en av dem är användare som har administratörsdata och en annan är tabellhjältarna och användarna (användare) som vi kommer att använda för att logga in som användare.

Användartabellen innehåller webbplatsadministratörsdata:

Därefter kommer vi att få rotlösenordet för användarna som vi hittar ovan, för detta använder vi följande kommando:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b -aktuell användare --is -dba --is -dba -privilegier --dbs - dumpa
I slutet av kommandona genom en brutal kraftattack finner vi att lösenordet för systemadministratören är ett fel och att användaren är root.

Vi ska försöka från terminalen, ansluta via ssh till den virtuella maskinen för att ta fjärrkontroll av datorn med följande kommando:

 ssh [email protected]
Resultatet med rotanvändaren och fellösenordet är anslutningen med administratörsbehörighet till den virtuella datorn.

Därefter testar vi om vi kan logga in på avsnittet hjältar och användare med data som tidigare erhållits, till exempel neo -användaren och treenighetslösenordet.

Vi lyckades komma åt med denna användardata utan problem. Om vi ​​använder användartabellen kan vi också logga in.

3. HTML / XPATH -injektion


En av de minst tänkta attackerna är genom de webbläsare som tillåter kodredigering. Om vi ​​ändrar en länk till en skadlig webbplats kommer användaren inte att märka det och ändringen går förlorad när webben uppdateras.

Till exempel kommer vi att ändra lösenord och högerklicka för att öppna en inspektör eller kodredigerare och ändra webbadressen change_password.php till http://google.com och stänga redigeraren

FÖRSTORA

Således, när användaren klickar på den länken, kommer de att omdirigeras till en annan sida, det är mycket ineffektivt eftersom länken återgår till originalet när du uppdaterar eller ändrar sidan. Detta är för oss att titta innan vi klickar på en länk som tar oss till en säker webbplats eller inom samma domän.

4. Injektion på serversidan


Injektion på serversidan är när en webbplats är sårbar och tillåter kommandon från ett språk eller operativsystemet för att utföra åtgärder på servern.

En angripare skickar skadlig kod eller ett kommando genom ett textfält i ett webbprogram som körs av webbservern. Låt oss se ett exempel som gör att du kan lista kataloger med Linux ls -kommandot, vilket vi kommer att skriva enligt följande:

 

FÖRSTORA

Resultatet blir listan över alla kataloger på servern, så vi måste kontrollera att inga kommandon kan anges.

FÖRSTORA

Ett av verktygen som bWAPP -projektet föreslår för oss är ZAP (Zed Attack Proxy), vi såg det här verktyget i självstudien Skanna en webbplats sårbarhet med ZAP, det används ofta för att skanna sårbarheter och utföra penetrationstester på webbplatser. Vi kan ladda ner den mest uppdaterade versionen från följande länk:

LADDA NER ZAP

Välj version enligt det operativsystem vi har eller en multiplatformversion utvecklad i Java. Efter installationen försöker vi skanna bWAPP -webben med ZAP och leta efter några sårbarheter.

FÖRSTORA

När vi startar ZAP och utför en skanning kommer vi att se att den upptäcker de flesta sårbarheterna, för att definiera skanningsregler kan vi gå till menyn Analysera> Skanningsregler och sedan dubbelklickar vi på Standardpolicy.

Låt oss på en av inloggningssidorna se att användarnivån skickas som en parameter, i detta fall administratören.

FÖRSTORA

Vi kan också använda filtren som vi såg i ZAP -handledningen för att göra SQL -injektion och andra attacker.

Webbapplikationssäkerhet är en mycket viktig aspekt bortsett från bra design och innehåll. bWAPP är en plattform som gör det möjligt för oss att känna till och testa många sårbarheter och sedan tillämpa den kunskapen på vår webbplats och fungerar också så att specialister, utvecklare och studenter kan upptäcka och förebygga webbsårbarheter.

bWAPP används i stor utsträckning för webbapplikationstestning och etiska hackningsprojekt. bWAPP täcker alla större kända webbsårbarheter, inklusive alla risker med OWASP Top 10 -projektet, som samlar sårbarheter från år till år i tio kategorier.

Slutligen rekommenderar vi denna artikel med en förklaring av typer av cyberattacker.

wave wave wave wave wave