zaproxy / zaproxy/zaproxy

[Tracker] Passive Scanning WebSockets

Open
#5,346 2 comments 0 reactions 1 assignee View on GitHub

@eakirtas is already working on this.

Since May 8, 2019.

add-on enhancement tracker
Dominant language
Java
Stars
15.8k
Forks
2.6k
Avg merge
13h 16m
Merged PRs (30d)
17

Description

Expectations

An infrastructure which allows passively examination of WebSocket messages. The infrastructure should support plugin additions, scripts and API, all the above should be able to raise the appropriate alerts.


Current State
Has been released


TODOs

  • Support Plugin Addition
    • Usable UI
  • API
  • Make alerts trigger ZAP-HUD pop-ups (related issue [2])

Done

  • Add forder to Community Script Repo (PR#156)
  • Fix the errors triggered by using websocket passive scanner with ZAP HUD (more-info) (Fixed)
  • Add WebSocket Passive Scan scripts by default
  • PR#1718 Script Mechanism
    Contains:
    • Basic infrastructure - Iterates over the stored websocket messages and, in turn, apply the passive script plugin
    • Templates for Python and JavaScript
    • Scripts are able to raise alerts. However, because of related issue 1 the alerts point on handshake message.

Possible Scans

  • Scripts
    • Base64 Disclosure - Javascript
    • Email Disclosure - Javascript
    • Error Messages Disclosure - Javascript
    • Private IP Disclosure - Javascript
    • Credit Card Disclosure - Javascript
    • Username Scanner - Javascript
    • Debug Error Disclosure - Javascript
    • Suspicious Comment Disclosure - Javascript

Related Issues

  1. Enhancement: Add support for raising alerts for other than HTTP/1.x interactions
  2. Default to showing alerts for different subdomains
  3. Alerts can't handle huge payloads and evidence
  4. Base64 Disclosure rule for WebSocket
  5. WebSocket default scipts behaviour
  6. WebSocketAlertWrapper - Couldn't get the Handshake Http Message for this specific channel

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.