hunt-exceptional-conditions
Makes your agent identify the mishandling of exceptional conditions. It ensures errors don't create security gaps.
What it does
This tool helps find flaws in computer programs. It tests how a program reacts to unexpected information, looking for errors that might reveal internal system details.
When to use it
- ✓When testing the security of a website or application with permission.
- ✓To check if unexpected errors expose sensitive information.
- ✓During an authorized security assessment to find vulnerabilities.
Example of what to ask your AI
“Test the website 'example.com' by sending invalid data to the login API.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool sends data that the program doesn't expect, like wrong types or incorrect formats. If the program can't handle it, it might show a detailed error message that reveals internal information.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill hunt-exceptional-conditionsOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-exceptional-conditions/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
⚠️ AUTHORIZED USE ONLY This skill is for educational purposes or authorized security assessments only. You must have explicit, written permission from the system owner before using this tool. Misuse of this tool is illegal and strictly prohibited.
Mandatory confirmation gate Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
- Ask the user to state the exact target URL, IP, account, or resource.
- Ask the user to confirm written authorization and the permitted scope.
- Show the exact command(s) and explain their expected effect.
- Wait for explicit confirmation in the current conversation.
Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
HUNT-EXCEPTIONAL-CONDITIONS — Verbose Errors / Fail-Open (A10:2025)
What actually pays
Well-built apps catch errors and return a clean, generic message. A broken app, when handed input it didn't expect, throws an unhandled exception and renders a developer error page straight to the client — leaking the stack trace, the ORM/query internals, server-side file paths, and framework/library versions. That disclosure is the finding (and it arms SQLi/RCE/path attacks next).
Recon
Any endpoint that parses input is a candidate; the richest are:
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
Attack — send what the code didn't anticipate
Take a known-good request and break ONE assumption at a time:
- Wrong type: a field the app expects to be a number/string is sent as an
array or object —
{"rating":"x","comment":[1,2,3]},{"quantity":{}}. - Malformed body: truncated/!invalid JSON, an unterminated string, a stray brace, a wrong/missing Content-Type.
- Boundary/oversized: a very long string, a huge/negative/overflow number.
- Null byte / control chars embedded in a value.
POST /api/Feedbacks {"rating":"notanumber","comment":[1,2,3]}
GET /item/' OR /item/%00 (also exercises the error path)
Watch the RESPONSE BODY, not just the status: a 500 (or even a 200/400) whose body contains a stack trace or framework error page is the signal.
What counts as a leak (the success signal)
A finding is confirmed when the response body contains a cross-framework error-disclosure signature:
- Node/Express + Sequelize:
SequelizeDatabaseError,node_modules/sequelize, a JS stack with internal paths. - PHP:
<b>Warning</b> ... /var/www/.../file.php on line N. - Python:
Traceback (most recent call last),werkzeug.exceptions. - Java:
at com.app.Foo(Foo.java:42)stack frames. - .NET:
Server Error in '/' Application, a[System.XxxException: ...]YSOD.
A clean JSON error ({"error":"Invalid input"}) with no internals is NOT a
finding — that's correct handling. Disclosure of internal structure is.
Validation discipline
- Capture the exact leaked artifact (path, ORM class, version, stack frame) — that's the evidence. "It returned 500" alone is not disclosure.
- Note what the leak enables next (e.g. a disclosed SQL error → hunt-sqli; a disclosed absolute path → hunt-lfi).
When to Use
- You have explicit, written authorization to assess the target in scope, and the task matches this skill's vulnerability class or technique within a bug-bounty or penetration-test engagement.
- You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.
Limitations
- Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
- Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
- Validate every finding (see
triage-validation) before reporting; report viareport-writing. Prefer a sandbox, disposable VM, or controlled lab.
Example
# Read-only first step; confirm scope before anything active.
cat scope.txt # target list from the authorized engagement brief
…
FAQ
What is a 'developer error'?
It's a detailed error message that shows technical information about how the program works internally, like file paths or software versions. This should not be shown to the end-user.
Do I need permission to use this tool?
Yes, it is crucial to have explicit, written permission from the system owner before using this tool. Unauthorized use is illegal.
What happens if I don't have permission?
The tool can only provide defensive guidance and should not perform any actions that probe or exploit the system. Active actions are only allowed with authorization.
Details
Original description by the author
Hunt mishandling of exceptional conditions
Popularity
- GitHub stars
- 48k
- Ranking position
- #3256
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
django-security
Helps your agent implement security practices in Django applications. It focuses on authentication, authorization, and prevention against common attacks, ensuring more secure code.
affaan-m/ECC
laravel-security
Helps your agent secure Laravel applications against threats. Implements security practices for authentication, authorization, and common attack prevention.
affaan-m/ECC
module-regression
Helps your agent manage changes in large projects. Ensures code changes in one part don't break other parts.
affaan-m/ECC