OWASP ZAP
Free, open-source web proxy and scanner. No throttling on fuzzer/scanner.
Install: Download from zaproxy.org or run java -jar zap.jar
Quick Start
Start ZAP (
zaproxycommand)Click Firefox icon in toolbar (pre-configured browser)
Browse target - requests appear in
Historytab
Proxy Setup
Pre-Configured Browser
Click Firefox icon at end of top toolbar - auto-proxied through ZAP.
Manual Firefox Setup
Install FoxyProxy
Add proxy:
127.0.0.1:8080Export CA cert:
Tools > Options > Network > Server Certificates > SaveImport in Firefox:
about:preferences#privacy>View Certificates>Authorities>Import
Change Proxy Port
Tools > Options > Network > Local Servers/Proxies
Intercepting Requests
Enable/Disable Intercept
Click green circle button in toolbar (green = pass through, red = intercept)
Or press
Ctrl+B
HUD Mode
ZAP's in-browser interface:
Enable: Click HUD button (end of toolbar)
Intercept: Click break button (left pane, second from top)
Step= Forward and intercept nextContinue= Forward and stop intercepting
HUD Features
Light bulb
Show/enable hidden fields
Comments
Show HTML comments
Spider
Start spider scan
Active Scan
Start vulnerability scan
Request Editor (Repeater)
Resend and modify requests.
Usage
Find request in
HistorytabRight-click >
Open/Resend with Request EditorModify request
Click
Send
From HUD
Click request in bottom History pane:
Replay in Console- View response in HUDReplay in Browser- Render in browser
Fuzzer
No speed throttling (unlike Burp free).
Setup
Find request in History
Right-click >
Attack > FuzzSelect text to fuzz > Click
AddChoose payload type
Payload Types
File
Load custom wordlist
File Fuzzers
Built-in wordlists
Numberzz
Sequential numbers
Strings
Manual list
Regex
Pattern-based
Built-in Wordlists
Select File Fuzzers > Choose from:
dirbuster- Directory listsfuzzdb- Attack payloads (install from Marketplace)
Processors
Modify payloads before sending:
URL Encode/Decode
Base64 Encode/Decode
MD5/SHA Hash
Prefix/Postfix String
Options
Concurrent Scanning Threads- Set to 20+ for speedDepth FirstvsBreadth Firststrategy
Filter Results
Sort by Code (HTTP status) or Size Resp. Body
Replacer (Match & Replace)
Auto-modify requests/responses.
Setup
Ctrl+R or Tools > Replacer > Add
Options
Match Type
Request Header, Response Body, etc.
Match String
Text to find
Replacement String
Text to replace with
Initiators
Where to apply (all, specific tools)
Example - Custom User-Agent
Spider (Crawler)
Build site map by following links.
Start Spider
Right-click request in History >
Attack > SpiderOr HUD: Click Spider button (right pane)
Ajax Spider
For JavaScript-heavy sites:
HUD: Third button on right pane
Discovers AJAX-loaded content
View Results
Sites tab in main ZAP UI or HUD Sites Tree button
Scanner
Passive Scanner
Runs automatically on all proxied traffic.
Check
Alertstab for findingsNo additional requests sent
Active Scanner
Full vulnerability testing:
Right-click target in Sites tree >
Attack > Active ScanOr HUD: Click Active Scan button
Tests: SQLi, XSS, Command Injection, Path Traversal, CSRF, etc.
View Alerts
Main UI:
AlertstabHUD: Alert buttons (left/right panes)
Click alert for details and PoC
Alert Severity
High
Red
SQLi, RCE, Command Injection
Medium
Orange
XSS, CSRF, Missing security headers
Low
Yellow
Cookie flags, Information disclosure
Info
Blue
Interesting findings
Reporting
Report > Generate HTML Report
Other formats: XML, Markdown, JSON
Marketplace Extensions
Tools > Manage Add-ons > Marketplace
Recommended Add-ons
FuzzDB Files
Attack wordlists
FuzzDB Offensive
More attack payloads
Wappalyzer
Technology fingerprinting
Retire.js
JS vulnerability detection
Access Control Testing
Authorization testing
JWT Support
JWT manipulation
Install Add-ons
Manage Add-ons>MarketplacetabFind add-on
Click
Install
Keyboard Shortcuts
Toggle intercept
Ctrl+B
Open Replacer
Ctrl+R
Encoder/Decoder
Ctrl+E
Force browse
Ctrl+L
Active scan
Right-click > Attack
Encoder/Decoder/Hash
Ctrl+E or Tools > Encode/Decode/Hash
Supported
Base64
URL
ASCII Hex
HTML Entity
JavaScript
MD5/SHA hashes
Auto-Decode
Paste text in Decode tab - auto-detects encoding
Proxy CLI Tools
With Proxychains
With cURL
API / Automation
ZAP has a REST API for automation:
Command Line
Tips
HUD tutorial: Click config button (bottom right) > "Take the HUD tutorial"
Dark theme:
Tools > Options > Display > Look and Feel: Flat DarkAjax Spider catches dynamically loaded content
Use Scope to limit scans: Right-click >
Include in ContextExport requests as cURL from History
Last updated