The OWASP ZAP Desktop User Guide
The following changes were made in this release:
An integrated add-ons marketplace
ZAP can be extended by add-ons that have full access to all of the ZAP internals. Anyone can write add-ons and upload them to the ZAP Add-on Marketplace (OK, so its a Google code project called zap-extensions, but you get the idea).
More importantly you can now browse, download and install those add-ons from within ZAP. Most add-ons can be dynamically installed (and uninstalled) so you wont even need a restart.
You can choose to be notified of updates, and even be automatically updated. And as the scan rules are now implemented as add-ons you can get the latest rules as soon as they are published.
A replacement for the ‘standard’ Spider
The ‘old’ Spider was showing its age, so its been completely rewritten, and is much faster and more comprehensive than the old one. This is still a ‘traditional’ spider that analyses the HTML code for any links it can find.
A new ‘Ajax’ spider
Web Socket support
ZAP now supports WebSockets, so ZAP can now see all WebSocket messages sent to and from your browser. As with HTTP based messages, ZAP can also intercept WebSocket messages and allows you to change them on the fly.
You can also fuzz WebSockets messages as well using all of the fuzzing payloads included in ZAP from projects like JBroFuzz and fuzzdb. And of course you can easily add your own fuzzing files.
Quick Start tab
The first main tab you will now see is a ‘Quick Start’ tab which allows you to just type in a URL and scan it with one click.
This is an ideal starting point for people new to application security, but experts can easily remove it if they find it distracting.
ZAP is now session awareness, so that ZAP can recognise and keep track of multiple sessions. It allows you to create new sessions, switch between them, and applies to all of the other components, like the Spider and Active Scanner.
User defined Contexts
You can now define any number of ‘contexts’ - related sets of URLs which make up an application. You can then target all URLs in a context, for example using the Spider or Active Scanner. You can also add the contexts to the scope, and associate other information, such as authentication details.
The session scope allows you to specify which contexts you are interested at any one time. You can restrict what you see in various tabs to just the URLs in scope, and prevent accidentally attacking URLs not in scope by using the Protected mode.
ZAP now supports 3 modes:
- Safe, in which no potentially dangerous operations permitted
- Protected, in which you can perform any actions on URLs in scope
- Standard, in which you can do anything to any URLs
You can now associate authentication details with any context, which allows ZAP to do things like detect if and when you are logged out and automatically log you back in again. This is especially useful when used via the API in security regression tests.
More API support
The REST API has been significantly extended, giving you much more access to the functionality ZAP provides.
Fine grained scanning controls
The active scan rules can now be tuned to adjust their strength (the number of attacks they perform) and the threshold at which they report potential issues.
New and improved active and passive scanning rules
We have uploaded the results from running ZAP 2.0.0 against wavsep (the most comprehensive open source evaluation project we are aware of) to the ZAP wiki: https://github.com/zaproxy/zaproxy/wiki/Testing TODO ;)
Full list of changes:
Issue 43: Scope option for filtering
Issue 163: Active scanner failing against DVWA [ high false positives/true negatives rate]
Issue 175: Better bruteforce wordlist
Issue 240: SocketException whilst fuzzing not handled correctly.
Issue 278: Root CA Certificate for Dynamic SSL invalid on some platforms due to ExtendeKeyUsage extension
Issue 281: Alert class JSON dependency
Issue 299: Feature request: Show count of found URIs during Spider
Issue 326: Response time and total length in manual request
Issue 330: robots.txt parsing
Issue 332: Support for modes
Issue 333: Spider - add option to crawl everthing in scope
Issue 335: Web Sockets - add support for Modes and Scope
Issue 342: Add an HttpSenderListener
Issue 350: Authentication management
Issue 354: Fuzzer attack strings not shown
Issue 356: Generate CSRF test form
Issue 360: brute force sub directories
Issue 370: API - save session better error handling
Issue 374: API - save session synchronous or provide status
Issue 376: Masking the passwords provided for Authentication
Issue 385: Support contexts
Issue 386: API Web UI - support parameters with views
Issue 388: Allow user to specify which technologies apply to a context
Issue 390: Spider - Add option to spider all in context
Issue 391: ZAP Performance improvements
Issue 397: Support weekly builds
Issue 400: Generate new CA certificate will always produce certificate with same serial number
Issue 401: Exception when the (new) Spider is started through the API
Issue 402: GUI labels are not properly displayed on Linux (when language set to Polish)
Issue 403: Set options via the API using reflection
Issue 404: Labels not properly displayed when the Persian language is chosen
Issue 406: Spider - Add option to control the effect of parameters on visited URLs
Issue 410: charset wrapped in quotation marks
Issue 411: Allow proxy port to be specified on the command line
Issue 417: IndexOutOfBoundsException in ExtensionHttpSessions in daemon mode
Issue 419: Restructure jar loading code
Issue 420: API - support absolute session paths
Issue 421: Cleanly shut down any active scan threads on shutdown
Issue 422: Use exec in zap.sh so a new process is not forked
Issue 423: Active scanner and spider can deadlock if ZAP is shutdown while they are running
Issue 424: Exceptions in Web Sockets when session opened
Issue 425: Add quick start tab
Issue 428: ZAP Marketplace support
Issue 429: Active Scan URL via API scans more than just the specified URL
Issue 433: API: introduce mandatory parameters and optional descriptions
Issue 435: Active scan alerts may be “lost” after saving the session
Issue 436: Locking on session save or shutdown via the API
Issue 438: API enhancements
Issue 441: View incorrectly initialised in many places when in daemon mode
Issue 443: “No Anti-CSRF tokens were found in a HTML submission form” listed as “None. Warning only.”
Issue 446: KeyStore of a registered PKCS#11 provider is not retrieved if a PKCS#11 provider is already registered
Issue 447: Highlight attack when displaying alerts
Issue 448: Rename Brute Force ext to Forced Browse and add URLs to the tree
Issue 449: Missing help page for “Extensions” panel in the “Options” dialogue
Issue 451: Manual check for updates doesn't work correctly in the newest weekly releases
Issue 453: Dynamic loading and unloading of add-ons
Issue 455: Split fuzzbd out into a new addon
Issue 456: Spider session handling tweeks
Issue 457: Search Tab arrow key support
Issue 459: Active scanner locking
Issue 460: Add a scan progress dialog
Issue 461: Add help file for Quick Start addon
Issue 462: Review: Patch/Review: SSLSocketFactory with TLS enabled and default Cipher options
Issue 466: Move Port Scan extension to ZAP extensions project
Issue 468: Upgrade SQL Injection rule to ‘release’
Issue 469: Allow anti csrf token to be added and removed via the API
Issue 471: Move BeanSell extension to ZAP extensions project
Issue 472: Spider accesses UI panel in daemon mode
Issue 473: Allow add-ons to remove views/components added to the message panels
Issue 478: Allow to choose to send ZAP's managed cookies on a single Cookie request header and set it as the default
||the introduction to ZAP
||the full set of releases
||the people and groups who have made this release possible