Posted Monday February 7, 2022
227 Words
Code Formatting The ZAP code must conform to standard formatting rules - if any changes do not conform then they will fail the build.
Fortunately you do not have to worry about these too much - just run the task: ./gradlew spotlessApply.
Linting While not currently mandatory, we do recommend running SonarLint against any changes you make and fixing anything that it reports.
Posted Wednesday December 1, 2021
374 Words
This document gives an overview of the automatic and manual components provided by OWASP Zed Attack Proxy (ZAP) that are recommended for testing each of the OWASP Top Ten Project 2021 risks.
For the previous Top Ten see ZAPping the OWASP Top 10 (2017)
Note that the OWASP Top Ten Project risks cover a wide range of underlying vulnerabilities, some of which are not really possible to test for in a completely automated way.
Posted Wednesday September 15, 2021
229 Words
ZAP stores its session data in an HSQLDB file database. There is also experimental support for other database engines.
Connecting to a Session Database Since ZAP locks its session file, it is only possible to view or modify the database when ZAP doesn’t have the session open. Session files are usually stored under session/ in the default directory.
Posted Monday March 22, 2021
667 Words
This guide explains how to make changes to ZAP using IntelliJ IDEA.
Preparation You will need to have followed the Quick Start Guide to Building ZAP and installed a version of IntelliJ IDEA.
Gradle Resources Working with ZAP in IntelliJ IDEA may need a bit more Java resources for the Gradle actions.
Posted Monday March 22, 2021
650 Words
ZAP has a plugin architecture and new functionality is implemented via add-ons.
Add-ons can be defined in any repository but most of the ones that the ZAP core team maintains live in zap-extensions. You should use this repository if you are planning on contributing your add-on to the ZAP project, but please talk to the ZAP Core team about this first via the ZAP Developer Group.
Posted Thursday March 18, 2021
564 Words
If you want to make changes to ZAP using the Eclipse IDE then you are in the right place.
Preparation You will need to have followed the Quick Start Guide to Building ZAP and installed a version of Eclipse suitable for Java development. We would suggest the “Eclipse IDE for Java Developers” package.
Posted Tuesday March 9, 2021
386 Words
The new Automation Framework will in time replace the Command Line and Packaged Scan options. It allows you to control ZAP via one YAML file and provides more flexibility while not being tied to any specific container technology.
The Automation Framework is included with the latest version of ZAP as well as the stable docker image.
Posted Wednesday January 20, 2021
849 Words
This may look like a long list of rules but hopefully many of them are just good development practice.
If you are just getting started with ZAP development then do not worry to much about them, but if you plan to make bigger contributions then you should check them before making too many changes that you might need to rework.
Posted Friday December 4, 2020
924 Words
Ever wanted to experiment with the ZAP codebase but felt intimidated by it? This guide will walk you through the process of building ZAP from the command line regardless of your operating system or IDE.
You can also follow along with Simon Bennetts as he sets the ZAP development environment in this Deep Dive video:
Posted Thursday January 30, 2020
417 Words
This document gives an overview of the automatic and manual components provided by OWASP Zed Attack Proxy (ZAP) that are recommended for testing each of the OWASP Top Ten Project 2017 risks.
For the latest Top Ten see ZAPping the OWASP Top 10 (2021)
Note that the OWASP Top Ten Project risks cover a wide range of underlying vulnerabilities, some of which are not really possible to test for in a completely automated way.
Posted Monday January 1, 0001
452 Words
These are the concepts that you will need to understand in order to configure authentication in ZAP.
Contexts ZAP contexts are a way of relating a set of URLs together. You can define any contexts you like, but it is expected that a context will correspond to a web application.
Posted Monday January 1, 0001
62 Words
The following SSO providers have documented solutions for automation.
We will aim to test ZAP with as many of these providers as possible in order to provide specific ZAP integration details. If you would like to help with this effort then please get in touch 😁.
LemonlDAP:NG Documentation: https://lemonldap-ng.
Posted Monday January 1, 0001
355 Words
Authentication is a key way of restricting access to an app. Some authentication mechanisms also make it significantly harder to use tools like ZAP, even for those people who have permission to use them.
Test in a Safe Environment Testing with valid credentials in a production environment is a really bad idea.
Posted Monday January 1, 0001
336 Words
If you are just performing manual testing then authentication is generally easier.
With manual testing you should be exploring the target app manually with a browser that is proxying through ZAP. In this case you can just use the valid credentials in the browser and in most cases you will be logged in.
Posted Monday January 1, 0001
554 Words
If ZAP is handling authentication then it needs to handle sessions as well - logging in is of no use if ZAP does not maintain the session as the target app will just treat ZAP as being unauthenticated.
Session management configuration is part of a ZAP context.
Posted Monday January 1, 0001
277 Words
If you ask a question related to authentication on one of the ZAP forums then you will be directed here.
We know that the ZAP authentication documentation needs improving. One of the reasons why it has not been improved is that we are too busy trying to answer authentication questions 😉.
Posted Monday January 1, 0001
763 Words
Docker is a great way to run ZAP in a CI/CD pipeline, but diagnosing problems can be tricky.
ZAP Cannot Connect to the Target If ZAP cannot connect to your target app then the first thing to do is to see if this is a ‘Docker’ networking issue.
Posted Monday January 1, 0001
249 Words
If you need to set up ZAP to handle authentication then you really need to find a suitable verification URL in your app.
The verification URL will be one that you can request from the Manual Request Editor dialog and which will send a response that allows you to work out whether you are logged in or not.
Posted Monday January 1, 0001
461 Words
If you can generate an authentication token (e.g. to use in a header or cookie) and you know that your app will not invalidate it while you are using ZAP then one option is to handle authentication yourself.
In this case you take on the responsibility for handling the authentication and session handling.
Posted Monday January 1, 0001
1125 Words
The ZAP API scan is a script that is available in the ZAP Docker images.
It is tuned for performing scans against APIs defined by OpenAPI, SOAP, or GraphQL via either a local file or a URL.
It imports the definition that you specify and then runs an Active Scan against the URLs found.
Posted Monday January 1, 0001
1326 Words
The ZAP Baseline scan is a script that is available in the ZAP Docker images.
It runs the ZAP spider against the specified target for (by default) 1 minute and then waits for the passive scanning to complete before reporting the results.
This means that the script doesn’t perform any actual ‘attacks’ and will run for a relatively short period of time (a few minutes at most).
Posted Monday January 1, 0001
504 Words
The ZAP full scan is a script that is available in the ZAP Docker images.
It runs the ZAP spider against the specified target (by default with no time limit) followed by an optional ajax spider scan and then a full active scan before reporting the results.
This means that the script does perform actual ‘attacks’ and can potentially run for a long period of time.
Posted Monday January 1, 0001
366 Words
Scan Hooks To make it easy to make little tweaks here and there a hook system is in place to help you. It enables you to override or modify behaviour of the script components instead of having to write a new script.
Use Cases Modifying Args
For the AJAX crawler you may want to target a suburl with a specific hash (http://example.
Posted Monday January 1, 0001
462 Words
Starting with version 2.5.0 you can run the ZAP Desktop UI in your browser without having to install Java, thanks to the magic of Docker and Webswing
To do this you will just need Docker installed. Start the container with webswing support:
Stable: docker run -u zap -p 8080:8080 -p 8090:8090 -i owasp/zap2docker-stable zap-webswing.
Posted Monday January 1, 0001
1135 Words
Introduction Docker image with OWASP Zed Attack Proxy preinstalled.
Details Install Instructions Stable The stable image is updated whenever there is a ZAP full release. It is also regenerated monthly, typically on the first Monday of the month. The monthly updates pull in the latest base Docker image and also any updated ZAP add-ons - no ZAP ‘core’ changes are included.