Zest is an experimental specialized scripting language (also known as a domain-specific language) originally developed by the Mozilla security team and is intended to be used in web oriented security tools.
It is included by default with ZAP.
The engine is named Mozilla Zest
, which should be used when manually/programmatically configuring ZAP.
There are a variety of ways to create Zest scripts:
The new Zest script will be shown in the Scripts tab with a red ‘recording’ icon.
Any requests that you make underneath the specified prefix will be added to the script.
Press the ‘Recording a new Zest script’ again to stop recording the requests.
Note that you can only record ‘Stand Alone’ Zest scripts in this way. If you want to create other types of Zest script you must use another mechanism.
You can also right click any Stand Alone Zest script and use the ‘Start recording’ and ‘Stop recording’ buttons.
There are two primary methods for script recording: server-side and client-side. For client-side recording, we leverage the ZAP browser extension and a dedicated client Addon.
This combination allows us to efficiently capture and save user interactions in Zest scripts.
Any type of Zest script can be created this way.
Any type of Zest script can be created this way.
Note that you can only add request to ‘Stand Alone’ Zest scripts.
If you are using a recent version of Firefox then you can create Zest scripts from within your browser.
Note that you can only record ‘Stand Alone’ Zest scripts in this way. If you want to create other types of Zest script you must use another mechanism.
Zest scripts are edited graphically in the Scripts tree tab.
Each statement is a node in the tree - double click nodes to edit the statement properties.
You can add, move and remove statements via right clicking the Zest nodes.
You can also add requests to ‘Stand alone’ Zest scripts by right clicking the requests in any of the other tabs.
There are also some right click options available when you select text in the Request or Response tabs.
Zest includes a set of ‘built in’ variables as well as allowing you to declare your own.
A right click menu is provided (where relevant) in the edit dialogs to allow you to paste in any of the available variable names.
https://github.com/zaproxy/zest/ | The Zest GitHub repository, including details of the language |