It looks like a couple of users are having problems getting ZAP to detect persistent / stored XSS issues, so I think its worth a new thread on this list.
This persistent XSS rule injects 'safe' unique tokens into all available parameters.
It then spiders to see where these tokens appear on the site. If it
finds these tokens on any page it then attacks these parameters in a
similar way to the reflected cross site scripting - targeting wherever
they appear.
This seems to work well in simple cases, but clearly some people are having problems getting it to work so it might well need to be enhanced.
If any of you can reproduce such problems with open source vulnerable web apps then please let me know which, as I'll hopefully be able to reproduce those more easily.
Otherwise I suggest:
- Starting a new ZAP session
- Just perform the attack and check the target page via your browser (proxying through ZAP of course;)
- Active scan this site, with _only_ the persistent XSS rules enabled.
This should show ZAP injecting a unique safe value (like zApPX0sS, zApPX1sS, zApPX2sS etc) into every field it knows about.
If this value is _not_ shown on the target page then ZAP isnt going to be able to detect an XSS.
If it is reflected then you should see ZAP performing a series of XSS attacks.
Please let me know how you get on :)
Simon