Contents
This tool can also be used for attacks. Use it only on systems you own or have written permission to test.
ZAP (Zed Attack Proxy) sits between your browser and a web app, records the traffic, and looks for signs of vulnerabilities. Start by running the practice app OWASP Juice Shop on your own computer and point ZAP at it.
ZAP used to be called “OWASP ZAP.” In 2023 it left OWASP and joined the Linux Foundation’s Software Security Project. Since 2024 it has been known as “ZAP by Checkmarx.” According to the official blog, it stays open source under the Apache License 2.0.
This review is for web developers and people who are starting to learn web security testing. After reading it, you can do the following:
- Run an automated scan against Juice Shop on your own computer
- Open an alert and read the request and response that caused it
- Tell passive scanning and active scanning apart, and pick the right one for the target
What ZAP does
- Records traffic: When your browser goes through ZAP, every request and response is saved.
- Spiders: Follows links and forms to collect the pages on a site.
- Passive scanning: Looks for problems by reading the recorded traffic only. The official guide says it does not change responses in any way and is considered safe.
- Active scanning: Sends requests built from known attacks to find vulnerabilities.
- Automation with Docker: The Docker images include scan scripts you can run in CI/CD.
Active scanning is an attack
The official docs describe active scanning as an attack on the target and say not to use it on web apps you do not own. It sends the same kind of requests a real attacker would, so it can break a site’s features or data. That is why this review rates its impact as “high.”
ZAP has four modes, which you switch from the toolbar.
| Mode | Behavior |
|---|---|
| Safe | Blocks every potentially dangerous operation |
| Protected | Allows potentially dangerous operations only on URLs in scope |
| Standard | Restricts nothing |
| ATTACK | Actively scans new in-scope pages as soon as they are found |
The official docs recommend Protected mode so that you only attack the sites you mean to.
Try it safely against Juice Shop
- Start Juice Shop on your own computer by following the Juice Shop review. Check that
http://localhost:3000opens. - Download the installer for your operating system from the official download page. The Windows and Linux versions need Java 17 or later installed separately. The macOS version includes Java.
- Start ZAP, open the Quick Start tab, and choose Automated Scan.
- Enter
http://localhost:3000in URL to attack and click Attack. ZAP collects pages with its spider, scans them passively, and then runs an active scan. - Select an alert in the Alerts tab at the bottom. The Response tab highlights the part of the response that triggered it.
Apps like Juice Shop build their pages with JavaScript, so the automated spider can miss some of them. Browsing the app yourself through ZAP records more of it.
Common uses
| Goal | How |
|---|---|
| Try everything against a practice app | Automated Scan in Quick Start |
| Check your own site without sending attacks | zap-baseline.py in the Docker image |
| Include attacks in CI (test environments only) | zap-full-scan.py in the Docker image |
The baseline scan runs the spider for one minute by default and reports passive scan results only. The official example looks like this:
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py -t https://www.example.com
The full scan also runs an active scan and can take a long time. Point it at your own test environment, not production.
Cautions
- Use ZAP only on your own sites, on sites you have written permission to test, and on practice targets such as Juice Shop. Even a passive-only scan sends requests to the server through the spider.
- An active scan submits forms and writes data over and over. Don’t point it at an environment with data you can’t afford to lose.
- The official releases are currently unsigned, and the download page notes that antivirus tools may flag them. Download ZAP only from the official site or the GitHub releases page, and check the published checksums.
Read next
Sources
- Official repository (zaproxy/zaproxy)github.com/zaproxy/zaproxy
- Getting Startedwww.zaproxy.org/getting-started/
- Downloadwww.zaproxy.org/download/
- Desktop User Guide: Active Scanwww.zaproxy.org/docs/desktop/start/features/ascan/
- Desktop User Guide: Modeswww.zaproxy.org/docs/desktop/start/features/modes/
- Docker: Baseline Scanwww.zaproxy.org/docs/docker/baseline-scan/
- Docker: Full Scanwww.zaproxy.org/docs/docker/full-scan/
- Blog: ZAP is Joining the Software Security Projectwww.zaproxy.org/blog/2023-08-01-zap-is-joining-the-software-security-project/
- Blog: ZAP Has Joined Forces With Checkmarxwww.zaproxy.org/blog/2024-09-24-zap-has-joined-forces-with-checkmarx/
Checked on 2026-10-24
Similar tools
OWASP Juice Shop
Impact Local onlyAn intentionally vulnerable online shop for practice. Run it on your own computer to learn how web vulnerabilities work and to try out security testing tools.
- Purpose
- Learning
- Type
- Practice lab
- Difficulty
- Beginner
- License
- PermissiveMIT
- Category
- Learning and practice labs / Web security
Nuclei
Impact Can harm othersA command-line scanner that sends requests following steps written in YAML templates and checks the responses for known vulnerabilities and misconfigurations.
- Purpose
- Audit
- Type
- Command line
- Difficulty
- Intermediate
- License
- PermissiveMIT
- Category
- Vulnerability scanning / Web security