Tooluck logoTooluck
SKILL.md

hunt-exceptional-conditions

Agent skill fromelementalsouls/Claude-BugHunter

Hunt mishandling of exceptional conditions — feed an endpoint malformed/unexpected input (wrong type, broken JSON, oversized field, null byte) and make it fail OPEN or leak internals: a verbose stack-trace / framework error page that discloses ORM internals, server file paths, library versions, or a language traceback. Use on any input-accepting endpoint (JSON APIs, forms, query params). Medium-High when the leak exposes internal structure that arms a deeper attack.

How to install hunt-exceptional-conditions

install hunt-exceptional-conditions
# install the Claude-BugHunter pack with the skills CLI
npx skills add elementalsouls/Claude-BugHunter

# or add only this skill to Claude Code: copy the folder

skills/hunt-exceptional-conditions/

# into

~/.claude/skills/hunt-exceptional-conditions/ (all projects)

.claude/skills/hunt-exceptional-conditions/ (one project)

skills/hunt-exceptional-conditions/SKILL.md

MITFull file
1# HUNT-EXCEPTIONAL-CONDITIONS — Verbose Errors / Fail-Open (A10:2025)
2
3## What actually pays
4
5Well-built apps catch errors and return a clean, generic message. A broken app,
6when handed input it didn't expect, throws an unhandled exception and renders a
7**developer error page** straight to the client — leaking the stack trace, the
8ORM/query internals, server-side file paths, and framework/library versions.
9That disclosure is the finding (and it arms SQLi/RCE/path attacks next).
10
11## Recon
12
13Any endpoint that parses input is a candidate; the richest are:
14
15```
16JSON APIs that expect typed fields: POST /api/* with {numbers, ids, enums}
17Endpoints with numeric/id path or query params: /item/{id}, ?page=, ?quantity=
18Search / filter / sort params
19File or content-type sensitive uploads
20```
21
22## Attack — send what the code didn't anticipate
23
24Take a known-good request and break ONE assumption at a time:
25
26- **Wrong type:** a field the app expects to be a number/string is sent as an
27 array or object — `{"rating":"x","comment":[1,2,3]}`, `{"quantity":{}}`.
28- **Malformed body:** truncated/!invalid JSON, an unterminated string, a stray
29 brace, a wrong/missing Content-Type.
30- **Boundary/oversized:** a very long string, a huge/negative/overflow number.
31- **Null byte / control chars** embedded in a value.
32
33```
34POST /api/Feedbacks {"rating":"notanumber","comment":[1,2,3]}
35GET /item/' OR /item/%00 (also exercises the error path)
36```
37…

Excerpt shown under the repository's MIT license.

More skills in Claude-BugHunter

Keep exploring

Similar skill repositories

thedotmack /

claude-mem
116k

Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More

CCCXGHGM+135 skills

pbakaus /

impeccable
108k

The design vocabulary for your coding agent. Steer with polish and bolder, review with critique and audit, catch AI slop before it ships.

2 skills

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates