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
Mensagem pronta para colar
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-conditionsOu 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.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.
⚠️ 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:
- Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- 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 viareport-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
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3256
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC