websockert
- HTML5
- 基于TCP协议的独立的通信协议
URI格式
- ws://
- 类似与http
- 使用明文传输 ,默认端口为80
ws://host[:port]path[?query]
- wss://
- 类似于https
- 使用TLS加密传输,默认端口为443
wss://host[:port]path[?query]
通信协议
客户端
代码语言:javascript复制GET / HTTP/1.1
Host: localhost:8080
Origin: http://127.0.0.1:3000
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: w4v7O6xFTi36lq3RNcgctw==
Connection:Upgrade
:表示要升级协议Upgrade:websocket
:表示要升级到websocket协议。Sec-WebSocket-Version:13
:表示websocket的版本。如果服务端不支持该版本,需要返回一个Sec-WebSocket-Version
header,里面包含服务端支持的版本号。Sec-WebSocket-Key
:
服务端:响应协议升级
代码语言:javascript复制HTTP/1.1 101 Switching Protocols
Connection:Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: Oy4NRAQ13jhfONC7bP8dTKb4PTU=
websocket渗透学习
- https://github.com/snoopysecurity/dvws-node
- https://portswigger.net/web-security/websockets
工具使用
burp不支持websockert爆破,协议转换 http-->websockertHTTP2WebSocket
剩下的就按照平常的方法去做就好了
至于报告和学习的话,可以在这个里面查一些资料进行学习
https://hackerone.com/hacktivity/overview?queryString=websocket&sortField=disclosed_at&sortDirection=DESC