Awesome
Awesome WebSockets Security
A collection of CVEs, research, and reference materials related to WebSocket security
Contents
- WebSocket Library Vulnerabilities
- Conference Talks
- Common WebSocket Weaknesses
- WebSocket Security Tools
- Bug Bounty Writeups
- Useful blog posts
<a name="websocket_library_vulnerabilities"></a>WebSocket Library Vulnerabilities
This list of vulnerabilities attempts to capture WebSocket CVEs and related issues in commonly encountered WebSockets server implementations.
<a name="conference_talks"></a>Conference Talks, Papers, Notable Blog Posts
2011
- Talking to Yourself for Fun and Profit Paper
2012
- Blackhat 2012 - Mike Shema, Sergey Shekyan, Vaagn Toukharian - Hacking with WebSockets Video
2019
- Hacktivity 2019 - Mikhail Egorov - What’s Wrong with WebSocket APIs? Unveiling Vulnerabilities in WebSocket APIs Video
- DerbyCon 2019 - Michael Fowl, Nick Defoe - Old Tools New Tricks Hacking WebSockets Video
2021
- OWASP Global AppSec US 2021 - Erik Elbieh - We’re not in HTTP anymore: Investigating WebSocket Server Security Tool Paper Video
<a name="common_websocket_weaknesses"></a>Common WebSocket Weaknesses
Unencrypted WebSockets
<!-- markdown-link-check-disable-next-line -->- Black Hills WebSocket testing guide: Link
Cross-Site WebSocket Hijacking (CSWSH)
Insecure Authentication Mechanism
Reverse Proxy Bypass using Upgrade Header
- Mikhail Egorov's initial PoC from Hacktivity 2019: Link
- Jake Miller's HTTP 2 smuggling tool based on Mikhail's PoC work: Link
- AssetNote blog post with golang h2smuggler tool: Link
DOM-based WebSocket-URL poisoning
- Portswigger summary: Link
<a name="useful_blogs"></a>Useful Blog Posts & Resources
- Portscanning using WebSockets Link
- WebSocket fuzzing with Kitty fuzzing framework Link
- WebSocket fuzzing harness Link
- Project Zero WebSockets-based buffer overflow Link
- Reserved Extension, Subprotocol values Link
<a name="websocket_security_tools"></a>WebSocket Security Tools
Discovery, Fingerprinting, Vulnerability Detection
- STEWS GitHub
Fuzzing
Playgrounds
- DVWS: A purposefully vulnerable WebSocket demo GitHub
- WebSocket-Playground: Jumpstart multiple WebSockets servers GitHub
General Utilities & Tools
- WebSocket King in-browser tool
- Hoppscotch.io in-browser tool
- websocat GitHub
- wsd GitHub
<a name="bug_bounty_writeups"></a>Bug Bounty Writeups
CSWSH bugs
- Slack H1 #207170: CSWSH (plus an additional writeup)
- Facebook: CSWSH
- Stripo H1 #915541: CSWSH
- Coda H1 #535436: CSWSH
- Legal Robot #211283: CSWSH
- Legal Robot H1 #274324: CSWSH
- Grammarly #395729: CSWSH
- Undisclosed target: CSWSH
- Undisclosed target: CSWSH
Other bugs
- PlayStation H1 #873614: Remote code execution over WebSockets
- Shopify H1 #409701: SSRF over WebSockets
- QIWI H1 #512065: DOM XSS over WebSockets
- NodeJS H1 #868834: DoS because no timeout to close unresponsive connections
- Bitwala H1 #862835: Broken authentication
- Shopify H1 #1023669: Broken authentication
- Legal Robot H1 #163464: Information leak
- GitHub H1 #854439: Arbitrary SQL queries via injection
- Undisclosed target: IDOR over WebSockets
- Undisclosed target on BugCrowd: XSS over WebSockets