owasp zap tutorial comprehensive review owasp zap tool
Deze tutorial legt uit wat OWASP ZAP is, hoe het werkt, hoe je ZAP Proxy installeert en instelt. Bevat ook een demo van ZAP-verificatie en gebruikersbeheer:
Waarom ZAP gebruiken voor pentesten?
Om een veilige webapplicatie te ontwikkelen, moet men weten hoe ze zullen worden aangevallen. Hier komt de vereiste voor webapp-beveiliging of penetratietesten.
Voor beveiligingsdoeleinden gebruiken bedrijven betaalde tools, maar OWASP ZAP is een geweldig open-source alternatief dat penetratietesten gemakkelijker maakt voor testers.
Wat je leert:
- Wat is OWASP ZAP?
- Hoe werkt ZAP?
- ZAP-verificatie, sessie- en gebruikersbeheer
- ZAP Html-rapportvoorbeeld
- Gevolgtrekking
Wat is OWASP ZAP?
Penetratietesten helpen bij het vinden van kwetsbaarheden voordat een aanvaller dit doet. OSWAP ZAP is een gratis open-source tool en wordt gebruikt om penetratietests uit te voeren. Het belangrijkste doel van Zap is om eenvoudige penetratietesten mogelijk te maken om de kwetsbaarheden in webapplicaties te vinden.
ZAP voordelen:
- Zap biedt platformonafhankelijk, d.w.z. het werkt op alle besturingssystemen (Linux, Mac, Windows)
- Zap is herbruikbaar
- Kan rapporten genereren
- Ideaal voor beginners
- Gratis tool
Hoe werkt ZAP?
ZAP creëert een proxyserver en zorgt ervoor dat het websiteverkeer via de server gaat. Het gebruik van autoscanners in ZAP helpt om de kwetsbaarheden op de website te onderscheppen.
Raadpleeg dit stroomschema voor een beter begrip:
beste ide voor python op mac
ZAP-terminologieën
Voordat we de ZAP-configuratie gaan configureren, moeten we enkele ZAP-terminologieën begrijpen:
# 1) Sessie : Sessie betekent eenvoudigweg door de website navigeren om het aanvalsgebied te identificeren. Voor dit doel kan elke browser zoals Mozilla Firefox worden gebruikt door de proxy-instellingen te wijzigen. Of we kunnen de zap-sessie opslaan als .session en kunnen opnieuw worden gebruikt.
# 2) Context: Het betekent een webtoepassing of een reeks URL's samen. De context die in de ZAP is gemaakt, valt de gespecificeerde aan en negeert de rest om te veel gegevens te vermijden.
# 3) Soorten ZAP-aanvallen: U kunt een kwetsbaarheidsrapport genereren met verschillende ZAP-aanvalstypen door de URL te raken en te scannen.
Actieve scan: We kunnen op veel manieren een actieve scan uitvoeren met Zap. De eerste optie is de Snelle start, die aanwezig is op de welkomstpagina van de ZAP-tool. Raadpleeg de onderstaande schermafbeelding:
Snelle start 1
De bovenstaande schermafbeelding toont de snelste manier om aan de slag te gaan met ZAP. Voer de URL in op het tabblad Snel starten, druk op de knop Aanval en de voortgang begint.
Quick Start voert de spider uit op de opgegeven URL en voert vervolgens de actieve scanner uit. Een spider crawlt alle pagina's vanaf de opgegeven URL. Om preciezer te zijn, de Quickstart-pagina is als 'richten en schieten'.
Snelle start 2
Hier begint de aanval na het instellen van de doel-URL. U kunt de voortgangsstatus zien als spidering van de URL om inhoud te ontdekken. We kunnen de aanval handmatig stoppen als het te veel tijd kost.
Een andere optie voor de Actieve scan is dat we toegang hebben tot de URL in de ZAP-proxybrowser, aangezien Zap deze automatisch zal detecteren. Klik met de rechtermuisknop op de URL -> Actieve scan wordt gestart. Zodra het crawlen is voltooid, wordt de actieve scan gestart.
De voortgang van de aanval wordt weergegeven op het tabblad Actieve scan. en op het tabblad Spider wordt de lijst-URL met aanvalsscenario's weergegeven. Zodra de actieve scan is voltooid, worden de resultaten weergegeven op het tabblad Waarschuwingen.
Controleer de onderstaande schermafbeelding van Actieve scan 1 en Actieve scan 2 voor een duidelijk begrip.
Actieve scan 1
Actieve scan 2
# 4) Spin: Spider identificeert de URL in de website, controleert op hyperlinks en voegt deze toe aan de lijst.
# 5) Ajax Spider: In het geval dat onze applicatie veel gebruik maakt van JavaScript, ga dan voor AJAX spider om de app te verkennen.Ik zal het uitleggen Ajax-spin in detail in mijn volgende tutorial.
# 6) Waarschuwingen : Websitekwetsbaarheden worden gemarkeerd als hoge, gemiddelde en lage waarschuwingen.
ZAP-installatie
Nu zullen we de installatie van ZAP begrijpen. Download eerst het Zap installeren Omdat ik Windows 10 gebruik, heb ik het Windows 64-bits installatieprogramma dienovereenkomstig gedownload.
Vereisten voor de installatie van Zap: Java 7 is vereist. Als u geen Java op uw systeem heeft geïnstalleerd, moet u dit eerst downloaden. Dan kunnen we ZAP lanceren.
Stel de ZAP-browser in
Sluit eerst alle actieve Firefox-sessies.
Start de Zap-tool >> ga naar het menu Extra >> selecteer opties >> selecteer Lokale proxy >> daar kunnen we het adres zien als localhost (127.0.0.1) en poort als 8080, we kunnen overschakelen naar een andere poort als deze al in gebruik is, zeg dat ik verander naar 8099. Controleer de onderstaande schermafbeelding:
Lokale proxy in Zap 1
Open nu Mozilla Firefox >> selecteer opties >> geavanceerd tabblad >> selecteer daarin Netwerk >> Verbindingsinstellingen >> selecteer optie Handmatige proxyconfiguratie. Gebruik dezelfde poort als in de Zap-tool. Ik ben handmatig gewijzigd in 8099 in ZAP en heb hetzelfde gebruikt in de Firefox-browser. Bekijk de onderstaande schermafbeelding van de Firefox-configuratie die is ingesteld als een proxybrowser.
Firefox-proxy-instellingen 1
Probeer uw applicatie te verbinden met uw browser. Hier heb ik geprobeerd verbinding te maken Facebook en er staat dat uw verbinding niet veilig is. U moet dus een uitzondering toevoegen en vervolgens de beveiligingsuitzondering bevestigen om naar de Facebook-pagina te navigeren. Raadpleeg de onderstaande screenshots:
Toegang tot webpagina -proxy browser 1
Toegang tot webpagina -proxy browser 2
Toegang tot webpagina -proxy browser 3
Controleer tegelijkertijd op het tabblad Sites van Zap de aangemaakte nieuwe sessie voor de Facebook-pagina. Als je succesvol verbinding hebt gemaakt met je applicatie, kun je meer regels zien op het geschiedenis-tabblad van ZAP.
Zap biedt normaal gesproken extra functionaliteit die toegankelijk is via rechtsklikmenu's zoals,
Klik met de rechtermuisknop op >> HTML >> actieve scan, dan zal zap een actieve scan uitvoeren en resultaten weergeven.
Als u uw applicatie niet via de browser kunt verbinden, controleert u uw proxy-instellingen opnieuw. U moet zowel de browser- als de ZAP-proxy-instellingen controleren.
Rapporten genereren in ZAP
Zodra de actieve scan is voltooid, kunnen we rapporten genereren. Klik daarvoor op OWASP ZAP >> Rapport >> HTML-rapporten genereren >> opgegeven bestandspad >> scanrapport geëxporteerd. We moeten de rapporten onderzoeken om alle mogelijke bedreigingen te identificeren en ze op te lossen.
ZAP-verificatie, sessie- en gebruikersbeheer
Laten we verder gaan met een andere Zap-functie, die authenticatie, sessie- en gebruikersbeheer behandelt. Laat me alsjeblieft elke vraag weten die in je opkomt als commentaar.
Basisconcepten
- Context : Het vertegenwoordigt een webtoepassing of een reeks URL's samen. Voor een bepaalde context worden nieuwe tabbladen toegevoegd om het authenticatie- en sessiebeheerproces aan te passen en te configureren. De opties zijn beschikbaar in het dialoogvenster Sessie-eigenschappen. D.w.z. dialoogvenster Sessie-eigenschappen -> Context -> u kunt de standaardoptie gebruiken of een nieuwe contextnaam toevoegen.
- Sessiebeheermethode: Er zijn 2 soorten sessiebeheermethoden. Meestal wordt op cookies gebaseerd sessiebeheer gebruikt, gekoppeld aan de context.
- Authenticatiemethode: Er zijn hoofdzakelijk 3 soorten Auth-methoden die door ZAP worden gebruikt:
- Formulier gebaseerde authenticatiemethode
- Handmatige authenticatie
- HTTP-verificatie
- Gebruikersbeheer: Als het authenticatieschema eenmaal is geconfigureerd, kan voor elke context een set gebruikers worden gedefinieerd. Deze gebruikers worden gebruikt voor verschillende acties ( Bijvoorbeeld, Spider URL / Context als gebruiker Y, stuur alle verzoeken als gebruiker X). Binnenkort zullen er meer acties voorzien worden die gebruik maken van de gebruikers.
Een 'Forced-User' -extensie is geïmplementeerd om de oude authenticatie-extensie te vervangen die herauthenticatie uitvoerde. Een ‘Gedwongen gebruiker’ modus is nu beschikbaar via de werkbalk (hetzelfde pictogram als de oude authenticatie-extensie).
Nadat een gebruiker is ingesteld als de ‘Gedwongen gebruiker’ voor een bepaalde context, of wanneer het is ingeschakeld, wordt elk verzoek dat via ZAP wordt verzonden, automatisch aangepast zodat het voor deze gebruiker wordt verzonden. Deze modus voert ook automatische herauthenticatie uit (vooral in combinatie met formuliergebaseerde authenticatie) als er een gebrek aan authenticatie is, wordt ‘uitgelogd’ gedetecteerd.
Laten we een demo zien:
Stap 1:
Start eerst ZAP en open de URL in de proxybrowser. Hier heb ik de voorbeeld-URL genomen als https://tmf-uat.iptquote.com/login.php Klik op Geavanceerd -> voeg uitzondering toe -> bevestig beveiligingsuitzondering zoals op pagina 6 en 7. Vervolgens wordt de landingspagina weergegeven. Tegelijkertijd laadt ZAP automatisch de webpagina onder Sites als een nieuwe sessie. Raadpleeg de onderstaande afbeelding.
Stap 2:
Neem het op in een context. Dit kan worden gedaan door het op te nemen in een standaardcontext of door het toe te voegen als een nieuwe context. Raadpleeg de onderstaande afbeelding.
Stap 3:
Nu, de volgende is de authenticatiemethode. U kunt verificatie in dat dialoogvenster met sessie-eigenschappen zelf zien. Hier gebruiken we de Form-based Auth-methode.
Het zou als authMethodParams moeten zijn als login-URL = https: //tmf-uat.iptquote.com/login.php&loginRequestData=username=superadmin&password=primo868&proceed=login ”
In ons voorbeeld moeten we de authenticatiemethode instellen op Formulier. Selecteer hiervoor de doel-URL, het aanmeldingsverzoek post dataveld wordt vooraf ingevuld, daarna de parameter wijzigen als gebruikersnaam en wachtwoord -> klik op ok
c ++ rand tussen 0 en 1
Stap 4:
Stel nu indicatoren in die ZAP vertellen wanneer het is geverifieerd.
Aangemelde en uitgelogde indicatoren:
- Er is er maar één nodig
- We kunnen Regex-patronen instellen die overeenkomen met het antwoordbericht, we moeten de aangemelde of uitlogindicator instellen.
- Identificeer wanneer een antwoord is geverifieerd of wanneer niet.
- Voorbeeld voor aangemelde indicator: Qhttp: // voorbeeld / logout E of Welkom gebruiker. *
- Voorbeeld van de afgemelde indicator: login.jsp of iets dergelijks.
Hier, in onze demo-applicatie, heb ik toegang tot de URL in een proxy-browser. Aangemeld bij de applicatie met een geldige referentie, gebruikersnaam als superadmin en wachtwoord als primo868. Navigeer door de binnenpagina's en klik op uitloggen
U kunt in de schermafbeelding van stap 3 zien dat Zap de aanmeldingsverzoekgegevens gebruikt als de gegevens die worden gebruikt voor het inloggen op de TMF-applicatie (Demo applicatie-login).
Markeer aangemeld Regex-patroon vanuit het antwoord van ZAP als antwoord -> uitgelogd antwoord -> markeer het als aangemeld in de indicator. Verwijzen naar de onderstaande schermafbeelding
Stap 5:
We kunnen de indicator opslaan en controleren of het dialoogvenster voor sessie-eigenschappen wordt toegevoegd met de aangemelde indicator of niet. Raadpleeg de onderstaande schermafbeelding:
Stap 6:
We moeten gebruikers toevoegen, geldige en ongeldige gebruikers. Pas spinaanvallen toe op beide en analyseer de resultaten.
Geldige gebruiker:
Ongeldige gebruiker:
Stap 7:
Stel het sessiebeheer standaard in als een op cookies gebaseerde methode.
Stap 8:
Spider URL-aanval wordt toegepast op ongeldige en geldige gebruikers en beoordeelt resultaten / genereert rapporten.
Ongeldige gebruikersspinaanvalweergave 1:
Hier wordt een spider-URL-aanval toegepast op de ongeldige gebruiker. In de ZAP-interface zien we Get: login.php (error _message), wat betekent dat de authenticatie is mislukt. Het geeft de URL's ook niet door aan de binnenste TMF-pagina's.
Stap 9:
Om een spider URL-aanval voor de geldige gebruiker toe te passen, gaat u naar de lijst met sites -> aanval -> spider-URL -> bestaande geldige gebruiker -> hier is het standaard ingeschakeld -> scan starten.
Analyseer resultaten: aangezien het een geldige geauthenticeerde gebruiker is, zal het door alle binnenpagina's navigeren en de authenticatiestatus als geslaagd weergeven. Zie onderstaande screenshot.
Geldige gebruiker
ZAP Html-rapportvoorbeeld
Zodra een actieve scan is voltooid, kunnen we hiervoor een HTML-rapport genereren. Selecteer hiervoor Rapport -> Html-rapport genereren. Ik heb een voorbeeldinhoud van HTML-rapporten bijgevoegd. Hier worden rapporten met hoge, gemiddelde en lage waarschuwingen gegenereerd.
Waarschuwingen
Gevolgtrekking
In deze tutorial hebben we gezien wat ZAP is, hoe ZAP werkt, installatie en ZAP proxy setup. Verschillende soorten actieve scanprocessen, een demo van ZAP-authenticatie, sessie- en gebruikersbeheer en basisterminologieën. In mijn volgende tutorial zal ik uitleggen over Ajax-spinaanvallen, het gebruik van fuzzers, geforceerde doorbladerde sites.
En als je de Zed-aanvalsproxy hebt gebruikt en een aantal interessante tips hebt om te delen, deel dit dan in de onderstaande opmerkingen.
Referenties:
Aanbevolen literatuur
- PractiTest Test Management Tool Hands-on Review Tutorial
- TestLodge Test Management Tool Beoordeling
- TestComplete-zelfstudie: een uitgebreide GUI-testtoolgids voor beginners
- Backlog Bug Tracking Tool Hands-on Review Tutorial
- Bugzilla-zelfstudie: Praktische zelfstudie met hulpprogramma voor defectbeheer
- Websiteprestaties testen met de SmartMeter.io Tool: praktische zelfstudie
- Tutorial WAVE Accessibility Testing Tool
- Hands-on review van qTest Test Management Tool