Protocolos de API (GraphQL, gRPC, WebSocket)

Cria dado de teste (use o prefixo pentest_). Limpe depois. Só em alvo seu ou autorizado por escrito.

O vetor

Vetor: cada protocolo tem falhas próprias: GraphQL introspection revela todo o schema; gRPC com reflection lista serviços; WebSocket sem authz aceita qualquer um. O que testamos: introspection/reflection habilitados e autorização em WS.

Os passos

Passo 1 (🟢) — GraphQL introspection:

curl -s -X POST "$BASE/graphql" -H "Content-Type: application/json" \
  -d '{"query":"{__schema{types{name}}}"}' | head -c 300

Passo 2 (🟢) — gRPC reflection:

grpcurl -plaintext SEU_HOST:PORTA list   # lista serviços = reflection ligada

Passo 3 (🟡) — WebSocket sem auth:

wscat -c "wss://SEU_HOST/ws"   # conecta sem token? envia msg e recebe dados?

O que esperar

  • VULNERÁVEL: introspection devolve o schema em produção; grpcurl list funciona sem TLS/auth; WS aceita conexão sem token.
  • SEGURO: introspection desabilitada em prod; gRPC com mTLS e reflection off; WS exige token na conexão + valida origem.

Como corrigir

Correção (P1): desabilitar introspection/reflection em produção; authz por mensagem no WS; rate limit; validar Origin. Limpeza: feche o wscat (Ctrl+C).

PurpleLab // plataforma de treino ofensivo + defensivo // Fase 1 — portal dinamico