Pular para o conteúdo
Skillpedia
Testes35 mil · #6075

performing-graphql-security-assessment

Faz seu agente avaliar a segurança de APIs GraphQL, procurando por vazamentos de informações e ataques.

O que ela faz

Esta ferramenta ajuda a verificar a segurança de APIs que usam GraphQL. Ela procura por falhas comuns que podem ser exploradas por hackers, como vazamento de informações, ataques de injeção e problemas de permissão.

Quando usar

  • ✓Ao testar a segurança de um site ou aplicativo que usa GraphQL.
  • ✓Quando você suspeita que uma API GraphQL pode ter vulnerabilidades.
  • ✓Durante testes de segurança autorizados em sistemas com APIs GraphQL.

Exemplo do que pedir para a IA

“Verifique a segurança da API GraphQL em https://meusite.com/graphql”

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/performing-graphql-security-assessment/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-graphql-security-assessment/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta automatiza a busca por pontos fracos na API GraphQL. Ela envia diferentes tipos de requisições para identificar se há brechas de segurança.

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 performing-graphql-security-assessment

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-graphql-security-assessment/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.

Realizando Avaliação de Segurança GraphQL

Quando Usar

  • Durante testes de penetração autorizados quando o aplicativo alvo usa uma API GraphQL
  • Ao avaliar aplicações de página única (React, Vue, Angular) que se comunicam via GraphQL
  • Para avaliar backends de aplicativos móveis que expõem endpoints GraphQL
  • Ao testar arquiteturas de microsserviços com um gateway ou federação GraphQL
  • Durante programas de recompensa por bugs que visam APIs baseadas em GraphQL

Pré-requisitos

  • Autorização: Acordo escrito de teste de penetração para o alvo
  • Burp Suite Professional: Com a extensão InQL para escaneamento GraphQL
  • GraphQL Voyager: Ferramenta de visualização de schema
  • InQL Scanner: Extensão do Burp para introspecção GraphQL e geração de consultas
  • Altair GraphQL Client: Cliente GraphQL desktop para testes interativos
  • clairvoyance: Enumeração de schema GraphQL quando a introspecção está desativada
  • curl: Para submissão manual de consultas GraphQL

Fluxo de Trabalho

Passo 1: Descobrir e Identificar Endpoints GraphQL

Localize os endpoints GraphQL e confirme que o GraphQL está em execução.

# Common GraphQL endpoint paths
for path in graphql graphiql playground query gql api/graphql \
  v1/graphql v2/graphql graphql/console; do
  status=$(curl -s -o /dev/null -w "%{http_code}" \
    -X POST -H "Content-Type: application/json" \
    -d '{"query":"{__typename}"}' \
    "https://target.example.com/$path")
  echo "$path: $status"
done

# Check for GraphQL IDEs (GraphiQL, Playground)
curl -s "https://target.example.com/graphiql" | grep -i "graphiql"
curl -s "https://target.example.com/graphql/playground" | grep -i "playground"

# Fingerprint GraphQL engine
curl -s -X POST \
  -H "Content-Type: application/json" \
  -d '{"query":"{__typename}"}' \
  "https://target.example.com/graphql"
# Response varies by engine: Apollo returns "Query", Hasura returns "query_root"

# Check for WebSocket GraphQL subscriptions
# ws://target.example.com/graphql (or wss://)

Passo 2: Realizar Introspecção de Schema

Extraia o schema GraphQL completo para entender a superfície da API.

# Full introspection query
curl -s -X POST \
  -H "Content-Type: application/json" \
  -d '{"query":"{ __schema { types { name kind fields { name type { name kind ofType { name kind } } } } mutationType { fields { name } } queryType { fields { name } } subscriptionType { fields { name } } } }"}' \
  "https://target.example.com/graphql" | jq .

# Comprehensive introspection query
curl -s -X POST \
  -H "Content-Type: application/json" \
  -d '{"query":"query IntrospectionQuery{__schema{queryType{name}mutationType{name}subscriptionType{name}types{...FullType}directives{name description locations args{...InputValue}}}}fragment FullType on __Type{kind name description fields(includeDeprecated:true){name description args{...InputValue}type{...TypeRef}isDeprecated deprecationReason}inputFields{...InputValue}interfaces{...TypeRef}enumValues(includeDeprecated:true){name description isDeprecated deprecationReason}possibleTypes{...TypeRef}}fragment InputValue on __InputValue{name description type{...TypeRef}defaultValue}fragment TypeRef on __Type{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name}}}}}}}"}' \
  "https://target.example.com/graphql" | jq . > schema.json

# If introspection is disabled, use clairvoyance for schema enumeration
python3 -m clairvoyance \
  -u "https://target.example.com/graphql" \
  -w /usr/share/seclists/Discovery/Web-Content/graphql-field-names.txt \
  -o discovered-schema.json

# Visualize the schema using GraphQL Voyager
# Upload schema.json to https://graphql-kit.com/graphql-voyager/

Passo 3: Testar Autorização em Consultas e Mutações

Verifique se o controle de acesso é aplicado no nível de campo e objeto.

# Testar consulta de todos os usuários (deve exigir admin)
curl -s -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $USER_TOKEN" \
  -d '{"query":"{ users { id email role passwordHash } }"}' \
  "https://target.example.com/graphql" | jq .

# Testar acesso a campos sensíveis do próprio usuário
curl -s -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $USER_TOKEN" \
  -d '{"query":"{ user(id: 1) { id email ssn creditCard internalNotes } }"}' \
  "https://target.example.com/graphql" | jq .

# Testar autorização de mutação (ações exclusivas para admin com token de usuário)
curl -s -X POST \
  -H "Content-Type: application/json" \

…
Perguntas frequentes

O que é GraphQL?

GraphQL é uma forma de criar APIs (interfaces que permitem a comunicação entre softwares) que é mais eficiente e flexível que as formas tradicionais.

O que é um teste de penetração?

É um teste de segurança autorizado onde se tenta invadir um sistema para encontrar vulnerabilidades antes que hackers mal-intencionados o façam.

Preciso ter conhecimento técnico para usar isso?

Este processo é voltado para profissionais de segurança. Para usuários comuns, o ideal é reportar suspeitas de falhas a quem desenvolveu o sistema.

Detalhes

Descrição original do autor

Assessing GraphQL API endpoints for introspection leaks, injection attacks, authorization flaws, and denial-of-service vulnerabilities during authorized security tests.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6075
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