-
Notifications
You must be signed in to change notification settings - Fork 0
ZAP Stappenplan ZAP script maken
| status ❌ |
|
|---|---|
| Taal | ✅ |
| Instructies | ❌ |
| (Dead) Links | ✅ |
- ZAP kun je gebruiken voor een actieve aanval (ad hoc) of geautomatiseerd middels een automation plan (zie Gids Automation Plan). Dit is verder uitgelegd in ZAP - Verdieping en begrippen.
- In dit stappenplan wordt eerst en context gemaakt. Dit is een verzameling URL's die later wordt kan gebruikt worden voor beide typen gebruikswijzen (ad hoc of geautomatiseerd).
- We voegen deze context toe aan een automation plan zodat dit later in een CI/CD-pipeline kan worden uitgevoerd.
- Als laatste stap kan er een ZEST script worden toegevoegd aan het automation plan om daadwerkelijk stappen te doorlopen die later ook in die volgorde worden uitgevoerd.
In dit stappenplan wordt de Desktop-applicatie gebruikt. Volg deze instructies om ZAP te downloaden en te installeren: Download ZAP en installeer ZAP
Om het verkeer op te nemen wordt geadviseerd om de geïntegreerde browser van ZAP (zie screenshot) te gebruiken omdat die vooringesteld is. Als testwebsite kun je gebruik maken van:
- https://juice-shop.herokuapp.com/#/
- https://demo.owasp-juice.shop/
- https://demo.weblock.ru
- http://testphp.vulnweb.com/
- of kies hier een site: https://automationpanda.com/2021/12/29/want-to-practice-test-automation-try-these-demo-sites/
Wanneer je dit ziet is het goed
!
Als je dan naar de pagina gaat moeten er in de zijbalk van ZAP Sites te voorschijn komen. Dit is de opname.
!
- Gebruik de geïntegreerde browser van de ZAP GUI of; ❌ dan krijg ik een
PR_CONNECT_RESET_ERROR - Zet je browser (Firefox/Chromium) op
http://localhost:8090. ❌ dan krijg ik:Kan geen verbinding maken - ❌ moet je hier niet met de manual explore pagina werken?
- Bezoek de webapplicatie of webpagina → requests verschijnen in History.
- ZAP functioneert als MITM-proxy: alle verkeer wordt zichtbaar en kan later opnieuw worden afgespeeld.
De browser die geïntegreerde is in ZAP en standaard via de proxy loopt.
⚠️ Let op: Deze configuratie overschrijft bestaande instellingen.
⚠️ Waarschuwing
Deze actie verwijdert alle bestaande tokens. Gebruik met zorg.
Warning
Deze actie verwijdert alle tokens. Gebruik met zorg.
⚠️ Let op: Proxy overschrijft bestaande instellingen.[oai_citation:2‡GitHub Docs](https://docs.github.com/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)
⚠️ Waarschuwing
Deze stap is destructief.
# Stap 2 — Een context maken
Een context wordt gebruikt om de scope te bepalen van een scan/test. Het is het beste om dit te doen per webapplicatie die je wil scannen/testen. Een context zorgt ervoor dat ZAP de niet relevante endpoints niet meeneemt in een scan/test. De meeste webpagina's maken namelijk ook allerlei aanroepen naar websites die niet getest/aangevallen moeten worden met ZAP, zoals bv een aanroep naar Google oid).
Deze stap (een context maken) kun je ook voorafgaand aan de opname doen (dan werkt het als een include/exclude). Toch adviseren wij om dit als tweede stap te doen omdat je niet altijd weet welke calls je webapplicatie maakt en welke calls je daarvan wil behouden. Er is dan eerst een grote lijst met URL als resultaat van de opname. Hierna kan een selectie worden gemaakt tussen wat moet worden behouden en wat niet.
Meer info hierover is te lezen op.
https://www.zaproxy.org/docs/desktop/start/features/contexts/
- Rechtsklik op de site in **Sites** → *Include in Context → New Context*.
- Definieer:
- **IncludePaths / ExcludePaths** (regex ondersteund)
- (Optioneel) **Authentication** + **Users** + **Session Management**
- Test je instellingen met de **Authentication Tester**.

*Hier maak je de context aan, dit is de centrale configuratie die ZAP vertelt wat er bij een applicatie hoort en hoe deze werkt.*
# Stap 4 — Verkennen
- **Spider**: ontdekt links op basis van HTML-structuur.
- **Ajax Spider**: gebruikt een echte browser en is geschikt voor SPA’s (React/Angular/Vue).
- **OpenAPI import**: laad je API-spec om endpoints in scope te krijgen.
WAAROM
zodat je ook andere links (buiten je opname klikpad) kunt ontdekken, die later kunnen worden aangevallen
alle endpoints in kaart brengen
- context uitbreiden om later aan te vallen
HOE
# Stap 5 — Actieve scan
Je kunt nu een actieve scan doen ingeval je een ad hoc test zou willen doen.
Voor deze
- Rechtsklik op een context of node → *Attack → Active Scan*.
- Kies **scan-policy** en stel **limieten** in:
- `maxScanDurationInMins`
- `maxRuleDurationInMins`
- `threadsPerHost`
# Stap 6 — Rapportage
- *Report → Generate Report* → kies `traditional-html` en/of `traditional-xml`.
# Stap 7 — Automation Plan genereren
- Open het tabblad **Automation** → *Generate Plan* → exporteer als `af-plan.yaml`.
- Headless uitvoeren:
```bash
zap.sh -cmd -autorun /zap/wd/af-plan.yaml
Het Automation Panel waar je gemaakte automation plans kan inzien en exporteren.
exitStatus job) om te voorkomen dat scans onbeperkt draaien of CI/CD altijd slaagt.