This is exactly the sort of thing that
Zest was created for :)
And I know I havnt documented it enough, my bad :(
But there is a video clip linked off that page that will hopefully be of some use.
So, quick summary: Zest is essentially ZAPs macro language, but much more powerful.
Some pointers to get you started..
- Perform the requests you want to make via your browser proxying them through ZAP
- Locate and select them in the History tab, right click and "Add to Zest Script -> New Zest Script..."
- Give it a title and click Save
- Anti CSRF tokens _should_ be extracted and used automatically
- For other form based tokens you need right click on the request in the script and select "Add Zest Assignment -> Assign variable to a form field..."
- Then give it a suitable name and select the form / field you want
- To use variable in a request double click the request to edit it, put the cursor where you want the value, right click and select "Zest paste variable -> <variable name>"
- To fuzz a set of requests highlight them all, right click and select "Surround with -> Loop File" (assuming the fuzzing vectors are in a file) then select the file, give a loop variable a suitable name and use it as above
Zest is really powerful and the best thing to do is play around with it.
And ask here if and when you have any questions or problems.
Cheers,
Simon