Bug bounty workflow funnel
Skill ShulkwiSEC/bb-huge/skills/curated/bug-bounty-workflow-funnel
Implement the 5-stage Funnel workflow (Notes → Leads → Primitives → Findings → Reports) for structured bug bounty hunting. Based on Critical Thinking Bug Bounty Podcast Episode 166.From its SKILL.md
npx -y skills add ShulkwiSEC/bb-huge --skill bug-bounty-workflow-funnelAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 18 stars18 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
9.7 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it
Bug Bounty Workflow Funnel
When to Use
- When starting a new bug bounty program and need a structured data management system.
- When drowning in raw notes and need to triage observations into actionable items.
- When preparing to convert confirmed bugs into polished submission reports.
- When working in a team and need a shared vocabulary for finding severity stages.
Prerequisites
- A target program with defined scope (HackerOne / Bugcrowd / Intigriti / VDP)
- A note-taking system (Obsidian, Notion, plain Markdown files, or similar)
- Claude Code CLI for AI-assisted triage and report generation (optional but recommended)
Core Concept: The 5-Stage Funnel
"Structure your hacking data like a sales funnel. Raw observations at the top, polished reports at the bottom." — Critical Thinking Podcast, Ep. 166 [37:42]
flowchart TB
N["📝 NOTES<br/>(All raw observations)"]
L["🔍 LEADS<br/>(Interesting patterns)"]
P["🔧 PRIMITIVES / GADGETS<br/>(Reusable techniques & entry points)"]
F["🐛 FINDINGS<br/>(Confirmed vulnerabilities)"]
R["📄 REPORTS<br/>(Submission-ready documentation)"]
N --> L --> P --> F --> R
style N fill:#1a1a2e,stroke:#e94560,color:#fff
style L fill:#1a1a2e,stroke:#f9a826,color:#fff
style P fill:#1a1a2e,stroke:#16c79a,color:#fff
style F fill:#1a1a2e,stroke:#11999e,color:#fff
style R fill:#1a1a2e,stroke:#6c5ce7,color:#fff
Workflow
Stage 1: Notes (Raw Observations)
Everything goes here. No filtering. No judgment. Write it down NOW, evaluate LATER.
Directory structure:
target-name/
├── notes/
│ ├── 2025-01-15-initial-recon.md
│ ├── 2025-01-15-auth-flow-analysis.md
│ ├── 2025-01-16-api-endpoint-mapping.md
│ └── 2025-01-16-js-source-review.md
Note template:
# [Date] [Topic]
## Context
- Target: [subdomain/endpoint/feature]
- Tool used: [Burp/Browser DevTools/ffuf/etc]
- Time spent: [duration]
## Observations
- [Observation 1]
- [Observation 2]
## Raw Data
[Paste interesting requests/responses/code snippets here]
## Gut Feeling
- [ ] Worth investigating further
- [ ] Dead end
- [ ] Need more context
What belongs in Notes:
- HTTP request/response pairs that look unusual
- JavaScript variables or API endpoints found in source code
- Error messages, stack traces, verbose responses
- Authentication token formats observed
- Rate limit behaviour observations
- Any deviation from expected application behaviour
Stage 2: Leads (Interesting Patterns)
Leads are notes that survived initial triage. Something here is worth deeper investigation.
Promotion criteria (Notes → Leads):
| Signal | Example |
|---|---|
| Reflected user input | Parameter value appears in response body/headers |
| Inconsistent authorization | Different responses for same endpoint with different user roles |
| Verbose error messages | Stack trace leaking framework version, file paths |
| Unprotected API endpoints | /api/internal/ accessible without auth |
| Client-side security controls | JavaScript validation with no server-side enforcement |
| Unusual HTTP headers | X-Debug: true, X-Powered-By: Express 4.17.1 |
Lead template:
# LEAD: [Short Description]
## Source Note
- Link: [notes/2025-01-15-auth-flow-analysis.md]
## Hypothesis
[What vulnerability might this lead to?]
## Evidence
[Specific request/response or code snippet proving this is worth pursuing]
## Next Steps
1. [Action item 1]
2. [Action item 2]
## Priority: [HIGH / MEDIUM / LOW]
Stage 3: Primitives / Gadgets (Reusable Techniques)
Primitives are common attack techniques or entry points you discover that can be reused across multiple targets. Think of them as building blocks for exploitation chains.
Examples:
| Primitive | Description | Reuse Potential |
|---|---|---|
| Unsigned JWT | Application accepts alg: none JWTs | Any endpoint using this auth |
| GraphQL Introspection | __schema query returns full type system | Enumerate all mutations |
| Predictable ID sequence | User IDs are sequential integers | IDOR on any user-scoped endpoint |
| Open redirect on login | /login?redirect= accepts any URL | OAuth token theft chain |
| File upload → path traversal | Upload filename is used in storage path | Write to any directory |
Primitive template:
# PRIMITIVE: [Technique Name]
## Description
[What is this technique and why does it work?]
## How to Detect
[Specific test to confirm this primitive exists on a target]
## Exploitation
[Step-by-step usage]
## Chain Potential
[What can this be combined with? SSRF + this = ? IDOR + this = ?]
## Seen On
- [Target 1] — [Date]
- [Target 2] — [Date]
Stage 4: Findings (Confirmed Vulnerabilities)
A finding is a CONFIRMED bug with a working proof-of-concept. No speculation — only reproducible exploitation.
Promotion criteria (Leads → Findings):
- ✅ Reproducible exploit with specific steps
- ✅ Clear security impact (data leak, account takeover, RCE, etc.)
- ✅ Within program scope
- ✅ Not a known/acceptable risk documented in program policy
- ❌ NOT: "I think this might be exploitable" — that stays as a Lead
Finding template:
# FINDING: [Vulnerability Type] in [Component]
## Severity: [Critical / High / Medium / Low]
## CVSS 4.0: [Score] — [Vector String]
## Summary
[2-3 sentences: what is broken, how it is exploited, worst-case impact]
## Proof of Concept
[Exact curl command / Burp request / script that reproduces the bug]
## Impact
[Specific business impact with numbers if possible]
## Root Cause
[Why does this vulnerability exist? Missing validation? Broken access control?]
## Remediation
[Specific code fix, not generic advice]
## Status: [CONFIRMED / SUBMITTED / TRIAGED / RESOLVED / DUPLICATE]
Stage 5: Reports (Submission-Ready Documentation)
The final polished document submitted to the bug bounty platform. This is where money is made or lost.
Report quality directly correlates with bounty amount.
See the elite-report-writing skill for the full HackerOne-optimized report template.
Quick Report Checklist:
- Title uses format:
[VulnType] in [Component] Allows [BusinessImpact] - Summary is exactly 2-4 sentences
- CVSS 4.0 vector is defensible
- Steps to Reproduce are copy-paste deterministic
- PoC is a runnable script/command with zero placeholders
- Impact includes at least one real number
- Remediation gives exact code fix (before/after)
- CWE ID is correct
Claude Integration
Use Claude to automate transitions between stages:
Prompt to Claude:
"Review all files in notes/ and identify any that should be promoted to leads/.
For each promotion, create a lead file with hypothesis, evidence, and priority.
Explain why each note was or was not promoted."
Prompt to Claude:
"Take the finding in findings/idor-user-profiles.md and generate a
HackerOne-ready report in reports/. Use the elite report template.
Validate the CVSS score against the described impact."
Directory Structure for a Target
programs/
└── example-corp/
├── .claudemd # Scope, policy, auth tokens (see ai-pair-hunting skill)
├── notes/ # Stage 1: Everything goes here
├── leads/ # Stage 2: Worth investigating
├── primitives/ # Stage 3: Reusable gadgets
├── findings/ # Stage 4: Confirmed bugs
├── reports/ # Stage 5: Submitted reports
└── scripts/ # Custom automation for this target
Creativity Directive
IMPORTANT: The 5-stage funnel is a framework, not a cage. You are expected to adapt it:
- Add sub-stages if a target is complex (e.g., Leads-High / Leads-Low).
- Create cross-references between primitives and findings.
- Auto-generate statistics (conversion rate: notes→findings).
- Build a "dormant leads" watchlist for findings that need updated tool versions.
Think like an attacker. Adapt. Improvise.
🔵 Blue Team
- Deploy robust WAF rules to detect anomalies.
- Monitor logs for unusual access patterns.
📚 Shared Resources
For cross-cutting methodology applicable to all vulnerability classes, see:
_shared/references/elite-chaining-strategy.md— Exploit chaining methodology and high-payout chain patterns_shared/references/elite-report-writing.md— HackerOne-optimized report writing, CWE quick reference_shared/references/real-world-bounties.md— Verified disclosed bounties by vulnerability class
References
- Source Video: Building Claude Skills as a Bug Bounty Hunter — Critical Thinking Ep. 166 [37:42]
- Bug Bounty Bootcamp by Vickie Li (No Starch Press)
- HackerOne Submission Guidelines: https://docs.hackerone.com/
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most automation workflows skills give in ~2.3k tokens
Counted across 745 of the 1,008 authors here whose files we hold, read 2026-08-07
- Write conventional commit messagesin 36 of 745, across 35 files
- Delete branches after mergein 30 of 745, across 21 files
- Make atomic commitsin 25 of 745, across 15 files
- Write minimal code to pass testsin 22 of 745, across 10 files
- Re-snapshot after navigation or DOM changesin 21 of 745, across 13 files
- Use try-catch for error handlingin 20 of 745, across 8 files
- Run tests before committingin 20 of 745, across 12 files
- Write tests before implementationin 20 of 745, across 8 files
- Configure branch protection rulesin 19 of 745, across 5 files
- Explain the why in commit messagesin 19 of 745, across 9 files
- Refactor code while tests remain greenin 19 of 745, across 6 files
- Interact with elements using refsin 19 of 745, across 11 files
Said here and by no other author read
- record all raw observations immediately without filtering
- promote notes to leads based on triage criteria
- extract reusable attack techniques as primitives
- confirm findings with reproducible proof-of-concept exploits
- create reports using the elite report writing template
- organize hunting data into the five stage directory structure
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.