Proxyman icon indicating copy to clipboard operation
Proxyman copied to clipboard

[Request] Support Scripting, Breakpoint and Others tools for Websocket protocol

Open 4nif opened this issue 3 years ago • 11 comments

Proxyman version? (Ex. Proxyman 2.15.1)

macOS Version? (Ex. mac 10.15.7)

Steps to reproduce

Expected behavior

  • Support scripting, breakpoint and other tools such as map local, remote for Websocket protocol

Screenshots (optional)

4nif avatar Dec 23 '20 05:12 4nif

Hi @4nif, I would like to collect more requests from other users in order to start implementing this feature since it’s quite challenging to support debugging tools with Websocket 🧐

Thank you for opening this ticket 👍

NghiaTranUIT avatar Dec 23 '20 09:12 NghiaTranUIT

I might support Breakpoint for WS since it might be easier I believe.

Can you share with me what tasks you would like to achieve with WS?

NghiaTranUIT avatar Dec 23 '20 09:12 NghiaTranUIT

@NghiaTranUIT for starter

  • ability to breakpoint websocket tcp handshake (changes payload or header, etc)
  • modify/update websocket messages after websocket connection established

additionally I want to be able to perform local mock and streaming websocket message payload from proxyman to the client app 💯

4nif avatar Dec 25 '20 08:12 4nif

ability to breakpoint websocket tcp handshake (changes payload or header, etc)

This feature seems to be easy because, behind the scene, the WS/WSS will make an HTTP/HTTPS request (with Upgrade: websocket header), so I can modify the Breakpoint to capture it.

modify/update websocket messages after websocket connection established

It's a huge task as I estimate, let me collect more feature requests and consider soon 👍

NghiaTranUIT avatar Dec 25 '20 09:12 NghiaTranUIT

Also map remote for websocket connection would be great feature. It's working in Charles now, might give you some ideas

Floperoid avatar Sep 21 '21 09:09 Floperoid

I too would like to use map remote, so that when developing locally, I can redirect connections in my browser from our dev RabbitMQ instance wss://broker.dev.example.com to a local instance at ws://locahost:15675.

Can also confirm that this works in Charles today if you need it.

phaseOne avatar Apr 29 '22 22:04 phaseOne

This is a great feature

zh-d-d avatar May 14 '22 00:05 zh-d-d

I need scripting to add query params for ws. Hope this can be implemented soon.

helsonxiao avatar Jul 06 '22 09:07 helsonxiao

If you need this feature right now, it’s possible with mitmproxy addons, though you will have to accept using an app other than Proxyman.

phaseOne avatar Jul 06 '22 14:07 phaseOne

Thanks for all your requests. It seems it's reasonable to start implementing the Breakpoint for WS. I will checkout 👍

NghiaTranUIT avatar Jul 06 '22 15:07 NghiaTranUIT

Adding my vote for breakpoint, and if possible scripting, for Websockets. Currently using Burp when I have to play with Websockets and it's not up to Proxyman's standard! Scripting would be really nice, as in my use case I need to use the request in part of the response.

mprice-banno avatar Aug 11 '22 00:08 mprice-banno

Hopefully this feature can be implemented soon @NghiaTranUIT

4nif avatar Sep 30 '22 14:09 4nif

I hope this feature can be add soon, so I just paid to your product only

Here their feature https://portswigger.net/burp/documentation/desktop/testing-workflow/websockets/manipulating-websocket-messages

rilham97 avatar Oct 05 '23 20:10 rilham97

Hey folks, thanks for all input here 👍

I suppose that I can implement the WebSocket Repeater like what Burp does at: https://portswigger.net/burp/documentation/desktop/testing-workflow/websockets/manipulating-websocket-messages


To @Floperoid and @phaseOne Map Remote for Websocket is already done: https://github.com/ProxymanApp/Proxyman/issues/1218

NghiaTranUIT avatar Oct 06 '23 01:10 NghiaTranUIT