Pular para o conteúdo
Skillpedia
Segurança48 mil · #3280

hunt-race-condition

Ensina seu agente de IA a proteger aplicações contra ataques.

O que ela faz

Esta ferramenta ajuda a encontrar falhas de segurança chamadas 'condições de corrida'. Elas acontecem quando um sistema não lida corretamente com várias ações acontecendo ao mesmo tempo, permitindo que alguém faça algo mais de uma vez, como gastar um cupom várias vezes.

Quando usar

  • ✓Quando você quer testar se um cupom pode ser usado mais de uma vez.
  • ✓Para verificar se é possível votar ou curtir algo várias vezes seguidas.
  • ✓Ao tentar burlar limites de uso único em promoções ou contas.

Exemplo do que pedir para a IA

“Quero testar se o cupom de 10% de desconto pode ser usado múltiplas vezes no site X.”

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/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-race-condition/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-race-condition/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta envia várias requisições muito rapidamente, quase ao mesmo tempo. Se o sistema não for rápido o suficiente para processar cada uma separadamente, ele pode permitir que a mesma ação seja completada mais de uma vez.

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 sickn33/agentic-awesome-skills --skill hunt-race-condition

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-race-condition/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.

⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.

Porta de confirmação obrigatória Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:

  1. Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. Aguarde a confirmação explícita na conversa atual.

Sem essa confirmação, permaneça apenas em modo de leitura e forneça orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.

Disputando uma corrida — duas primitivas (independentes de ferramentas)

Vencer uma corrida exige requisições que cheguem na mesma janela estreita — envios sequenciais nunca funcionam. Use uma ferramenta de pacote único / envio sincronizado: Burp Repeater "Send group in parallel" (ataque de pacote único HTTP/2), Turbo Intruder (engine=Engine.BURP2, gate sync), ou qualquer cliente que possa enviar N requisições simultaneamente. Duas formas:

  • Corrida de cópias idênticas — envie N cópias IDÊNTICAS de uma requisição de uma vez (estouro de limite: gaste duas vezes um cupom/cartão-presente, exceda uma cota por usuário). Sucesso = ≥2 das N retornam 2xx.
  • Corrida de requisições diferentes (construção parcial) — envie uma LISTA de requisições DIFERENTES em uma janela sincronizada, repetida por várias rodadas. Para corridas de registrar-then-confirm / TOCTOU onde o objeto existe em um estado utilizável no meio da criação. Exemplo (bypass de verificação de e-mail — registre um e-mail arbitrário, então confirme-o através da janela de construção com um token em branco):
    Request A:  POST /register   body: csrf=<csrf>&username=hacker&email=anything@exploit.net&password=pw
    Request B:  GET  /confirm    params: token=   (empty)
    Fire A and B together, repeat ~20 rounds.
    
    Obtenha um CSRF novo de GET /register primeiro, então envie o lote. Após o sucesso, faça login como a nova conta e execute o objetivo (por exemplo, uma ação administrativa que muda o estado, como excluir um usuário). O token em branco para confirmar vence durante a janela em que a linha do usuário existe, mas seu token de verificação ainda não está definido.

Alvos "Crown Jewel"

Condições de corrida são achados de alta severidade porque quebram suposições financeiras, de controle de acesso e de integridade que os defensores raramente testam. Os maiores pagamentos vêm de:

  • Sistemas monetários/de crédito — gastos duplos em cartões-presente, cupons, bônus de indicação, créditos promocionais, saldos de carteira
  • Manipulação de votos/reputação — votar no mesmo conteúdo várias vezes, manipular placares ou algoritmos de tendências
  • Bypass de limites de conta — exceder cotas de nível gratuito, contornar restrições de "um por usuário" para convites, ativações de teste ou geração de chaves de API
  • Escalonamento de privilégios — disputar atribuição de função ou verificações de permissão durante fluxos de criação/atualização de usuário
  • Bypass de exclusão — ler ou exfiltrar dados durante uma janela estreita entre "marcado para exclusão" e "realmente excluído"
  • Fluxos de pagamento — cobrar um cartão uma vez, mas receber múltiplos atendimentos

Tipos de ativos que pagam melhor: Aplicativos Fintech, plataformas SaaS com modelos de crédito/assinatura, plataformas sociais com sistemas de reputação, fluxos de checkout de e-commerce, endpoints de token OAuth/SSO.


Sinais da Superfície de Ataque

Padrões de URL

/vote, /upvote, /like, /favorite
/redeem, /apply-coupon, /use-code, /claim
/purchase, /checkout, /confirm-order, /pay
/transfer, /withdraw, /send-money
/invite, /referral, /accept-invite
/upgrade, /activate, /trial
/delete, /deactivate, /cancel
/follow, /subscribe

Cabeçalhos de Resposta que Sinalizam Backends Propensos a Corridas

X-RateLimit-*        # rate limiting exists, but may not be atomic
X-Request-Id         # each request independently tracked
No Cache-Control     # stateful ops not idempotent

Padrões de JavaScript para Buscar

// Single-use action buttons with client-side disable
button.disabled = true
$('#btn').prop('disabled', true)
// Optimistic UI updates (state set before server confirms)
setState({ used: true })
// Sequential async calls without locking
await useVoucher(); await deductBalance();

Sinais de Pilha de Tecnologia

  • Ruby on Rails sem with_lock / lock! — ActiveRecord não trava por padrão

…

Perguntas frequentes

O que é uma 'condição de corrida'?

É um problema que ocorre quando um sistema não gerencia bem ações simultâneas, permitindo que uma ação (como usar um cupom) seja executada mais vezes do que deveria.

Preciso de permissão para usar esta ferramenta?

Sim, você precisa de permissão explícita e por escrito do dono do sistema antes de testar. Usar sem permissão é ilegal.

Quais tipos de sistemas são mais vulneráveis?

Sistemas financeiros (como cartões de presente), plataformas de votação, sistemas de e-commerce e qualquer lugar que tenha limites de uso ou promoções.

Detalhes

Descrição original do autor

Hunting skill for race condition vulnerabilities.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3280
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas