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 listfunciona 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).