env:
vars:
hosts: &ref_0
contexts:
- name: ZAP-Context-1785613375461
urls: *ref_0
includePaths:
- http://36.50.82.120:3000.*
excludePaths:
- .*\.png
- .*\.css
- .*\.jpg
- .*\.woff2
authentication:
method: browser
parameters:
browserId: firefox-headless
loginPageWait: 30
verification:
method: poll
loggedInRegex: admin@juice-sh\.op
loggedOutRegex: (Invalid email or password\.)|(Invalid credentials)
pollFrequency: 10
pollUnits: seconds
sessionManagement:
method: autodetect
users:
- name: zap-user
credentials:
username: ad...@juice-sh.op
password: admin123
parameters:
failOnError: true
failOnWarning: false
progressToStdout: true
continueOnFailure: false
jobs:
- type: passiveScan-config
parameters:
disableAllRules: false
rules:
- name: Authentication Request Identified
id: 10111
threshold: medium
- name: Session Management Response Identified
id: 10112
threshold: medium
- name: Verification Request Identified
id: 10113
threshold: medium
- id: 10027
threshold: 'off'
- id: 10099
threshold: 'off'
- id: 10057
threshold: 'off'
- name: spider
type: spider
parameters:
user: zap-user
context: ZAP-Context-1785613375461
maxDepth: 5
maxChildren: 25
maxDuration: 2
- name: ajaxSpider
type: spiderAjax
parameters:
context: ZAP-Context-1785613375461
user: zap-user
maxDuration: 2
- name: requestor
type: requestor
parameters:
user: zap-user
requests:
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
method: GET
- name: accessControl-unauth
type: accessControl
parameters:
context: ZAP-Context-1785613375461
scanAsUnAuthUser: true
numberOfThreads: 2
raiseAlert: true
- name: idor-fuzz
type: fuzz
parameters:
user: zap-user
fuzzerConfig:
maxErrorsAllowed: 10
numMessagesPerSecond: 5
messageFuzzers:
- type: http-message-fuzzer
parameters:
method: POST
data: '{"couponData":"bnVsbA==","orderDetails":{"paymentId":"3","addressId":"FUZZ","deliveryMethodId":"1"}}'
headers: *ref_2
payloads:
- type: numberzz
parameters:
start: 0
end: 507
increment: 1
- type: http-message-fuzzer
parameters:
method: DELETE
payloads:
- type: numberzz
parameters:
start: 0
end: 507
increment: 1
- type: http-message-fuzzer
parameters:
method: DELETE
payloads:
- type: numberzz
parameters:
start: 0
end: 503
increment: 1
- name: validation-fuzz
type: fuzz
parameters:
user: zap-user
fuzzerConfig:
maxErrorsAllowed: 20
numMessagesPerSecond: 5
messageFuzzers:
- type: http-message-fuzzer
parameters:
method: PUT
data: '{"message":"FUZZ","author":"ad...@juice-sh.op"}'
headers:
Content-Type: application/json
payloads:
- &ref_3
type: file
parameters:
file: /zap/wrk/fuzz-files/validation-master.txt
- type: http-message-fuzzer
parameters:
method: PUT
data: '{"message":"helloworld","author":"FUZZ"}'
headers:
Content-Type: application/json
payloads:
- *ref_3
- type: http-message-fuzzer
parameters:
method: POST
data: '{"ProductId":24,"BasketId":"1","quantity":"FUZZ"}'
headers:
Content-Type: application/json
payloads:
- *ref_3
- type: http-message-fuzzer
parameters:
method: GET
payloads:
- *ref_3
- name: activeScan
type: activeScan
parameters:
context: ZAP-Context-1785613375461
user: zap-user
maxRuleDurationInMins: 2
maxScanDurationInMins: 1
maxAlertsPerRule: 5
- name: passiveScan-wait
type: passiveScan-wait
- name: json-report
type: report
parameters:
template: traditional-json
reportDir: /zap/reports
reportTitle: ZAP Authenticated Report as JSON
- name: html-report
type: report
parameters:
template: traditional-html
reportDir: /zap/reports
reportTitle: ZAP Authenticated Report as html