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

hunt-exceptional-conditions

Faz seu agente identificar o mau tratamento de condições excepcionais. Garante que erros não criem brechas de segurança.

O que ela faz

Esta ferramenta ajuda a encontrar falhas em programas de computador. Ela testa como o programa reage a informações inesperadas, procurando por erros que podem revelar detalhes internos do sistema.

Quando usar

  • ✓Ao testar a segurança de um site ou aplicativo com permissão.
  • ✓Para verificar se erros inesperados expõem informações sensíveis.
  • ✓Durante uma avaliação de segurança autorizada para encontrar vulnerabilidades.

Exemplo do que pedir para a IA

“Teste o site 'exemplo.com' enviando dados inválidos para a API 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/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/hunt-exceptional-conditions/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-exceptional-conditions/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta envia dados que o programa não espera, como tipos errados ou formatos incorretos. Se o programa não souber lidar com isso, ele pode mostrar uma mensagem de erro detalhada que revela informações internas.

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-exceptional-conditions

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-exceptional-conditions/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 destina-se apenas a 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.

Portão de confirmação obrigatório 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.

HUNT-EXCEPTIONAL-CONDITIONS — Erros Verbosos / Fail-Open (A10:2025)

O que realmente paga

Aplicativos bem construídos capturam erros e retornam uma mensagem limpa e genérica. Um aplicativo quebrado, ao receber uma entrada que não esperava, lança uma exceção não tratada e renderiza uma página de erro do desenvolvedor diretamente para o cliente — vazando o stack trace, os internos do ORM/query, caminhos de arquivo do lado do servidor e versões de framework/biblioteca. Essa divulgação é a descoberta (e ela arma ataques de SQLi/RCE/path em seguida).

Reconhecimento

Qualquer endpoint que analise entrada é um candidato; os mais ricos são:

JSON APIs that expect typed fields:  POST /api/* with {numbers, ids, enums}
Endpoints with numeric/id path or query params:  /item/{id}, ?page=, ?quantity=
Search / filter / sort params
File or content-type sensitive uploads

Ataque — envie o que o código não antecipou

Pegue uma requisição conhecida como boa e quebre UMA suposição por vez:

  • Tipo errado: um campo que o aplicativo espera ser um número/string é enviado como um array ou objeto — {"rating":"x","comment":[1,2,3]}, {"quantity":{}}.
  • Corpo malformado: JSON truncado/inválido, uma string não terminada, uma chave solta, um Content-Type errado/ausente.
  • Limite/tamanho excessivo: uma string muito longa, um número enorme/negativo/de overflow.
  • Byte nulo / caracteres de controle embutidos em um valor.
POST /api/Feedbacks   {"rating":"notanumber","comment":[1,2,3]}
GET  /item/' OR /item/%00   (also exercises the error path)

Observe o CORPO DA RESPOSTA, não apenas o status: um 500 (ou mesmo um 200/400) cujo corpo contém um stack trace ou página de erro de framework é o sinal.

O que conta como vazamento (o sinal de sucesso)

Uma descoberta é confirmada quando o corpo da resposta contém uma assinatura de divulgação de erro entre frameworks:

  • Node/Express + Sequelize: SequelizeDatabaseError, node_modules/sequelize, um stack JS com caminhos internos.
  • PHP: <b>Warning</b> ... /var/www/.../file.php on line N.
  • Python: Traceback (most recent call last), werkzeug.exceptions.
  • Java: quadros de pilha at com.app.Foo(Foo.java:42).
  • .NET: Server Error in '/' Application, uma YSOD [System.XxxException: ...].

Um erro JSON limpo ({"error":"Invalid input"}) sem internos NÃO é uma descoberta — isso é tratamento correto. A divulgação da estrutura interna é.

Disciplina de validação

  • Capture o artefato vazado exato (caminho, classe ORM, versão, quadro de pilha) — essa é a evidência. "Retornou 500" sozinho não é divulgação.
  • Observe o que o vazamento permite em seguida (por exemplo, um erro SQL divulgado → caçar sqli; um caminho absoluto divulgado → caçar lfi).

Quando Usar

  • Você tem autorização explícita e por escrito para avaliar o alvo dentro do escopo, e a tarefa corresponde à classe de vulnerabilidade desta habilidade ou técnica dentro de um engajamento de bug-bounty ou teste de penetração.
  • Você precisa do fluxo de trabalho de reconhecimento, exploração ou validação descrito abaixo — executado estritamente dentro do escopo aprovado.

Limitações

  • Escopo autorizado apenas: o portão de confirmação acima é obrigatório antes de qualquer comando de sondagem, exploração ou acesso a credenciais.
  • Importação apenas de documentos: scripts auxiliares upstream, comandos, engine e ativos de pesquisa não são empacotados; reinstale as ferramentas do repositório de origem quando necessário.
  • Valide cada descoberta (veja triage-validation) antes de relatar; relate via report-writing. Prefira um sandbox, VM descartável ou laboratório controlado.

Exemplo

# Read-only first step; confirm scope before anything active.
cat scope.txt  # target list from the authorized engagement brief

…

Perguntas frequentes

O que é um 'erro de desenvolvedor'?

É uma mensagem de erro detalhada que mostra informações técnicas sobre como o programa funciona internamente, como caminhos de arquivos ou versões de software. Isso não deveria ser mostrado ao usuário final.

Preciso de permissão para usar esta ferramenta?

Sim, é crucial ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso não autorizado é ilegal.

O que acontece se eu não tiver permissão?

A ferramenta só pode fornecer informações defensivas e não deve executar nenhuma ação que possa testar ou explorar o sistema. Ações ativas só são permitidas com autorização.

Detalhes

Descrição original do autor

Hunt mishandling of exceptional conditions

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas