"
You will either need to explore ZAP using the Ajax Spider or using unit tests using browsers that are proxying through ZAP. "
I'm running E2E Selenium tests which are already triggering WebSockets communications - isn't that enough?
"ZAP currently only supports WebSocket passive scanning, not active scanning."
Alright, so passive scanning should be done by default during attacks, is that correct?
As mentioned, for some reason, I don't have ANY scripts under *WebSocket* scripts, please see attached image - is that expected?
"Out of interest, what data format are you using for your WebSocket comms?"
SOME ISSUE HAS BEEN OBSERVED USING ZAP WITH RSOCKET
First 6 bytes are not UTF-8 characters which results in ZAP not being able to parse data to String - You see msg in "WebSocket" history, but you cannot manually edit it (<unreadable binary payload>) and fuzzing does not work - ZAP just resends the same frame with no payload fuzzing involved - see attachments.
Is that a bug in ZAP?
Regarging to this observed issue, I guess I need to somehow tweak WebSocket messages so that fuzzing would be available - I thought that using custom defined Fuzzer WebSocket Processor script (or Web Socket Sender) I will be able to modify message before it is send BUT no success there as well - for unknown reason I couldn't get it to work, even with simple
https://www.piesocket.com/websocket-tester app - I couldn't get any message from within the script (added some plain print commands)
fuzzer_ws_processor.py:
def processMessage(utils, message):
print(COUNT)
print("")
print(">>> message: " + message)
print("")
print(">>> utils.getOriginalMessage(): " + utils.getOriginalMessage())
for (i, item) in enumerate(utils.getPayloads()):
print(i, item)
utils.sendMessage(message)
return
Could you also help me with that, please?
BTW, Thanks a lot for your commitment to ZAP project, Simon!