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
Mensagem pronta para colar
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-assessmentOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-graphql-security-assessment/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.
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.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6075
- 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
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC