Use at the START of any bug bounty hunting session, when switching targets, or when feeling lost about what to do next. Master orchestrator that combines the 5-phase non-linear hunting workflow with the critical thinking framework (developer psychology, anomaly detection, What-If experiments). Routes to all other skills based on current hunting phase. Also use when asking "what should I do next" or "where am I in the process."
Master orchestrator for hunting sessions. Combines the 5-phase non-linear workflow with the critical thinking framework that separates top 1% hunters from the rest.
PART 1: MINDSET (How to Think)
Core Principle
Hunting is not "find a bug" -- it is "prove an attack scenario." Think like an attacker with a specific goal, not a scanner looking for patterns.
Daily Discipline: Define, Select, Execute
Before touching any tool:
Define: "Today I target [feature/domain] to achieve [CIA impact]"
Replace guid=f8a2... with id=100 on sibling endpoint -> IDOR?
2. Multi-Perspective (multiple angles)
Perspective
What to check
Horizontal (same role)
User A's token + User B's ID -> IDOR
Vertical (different role)
Regular user -> /admin/deleteUser
Data flow (proxy view)
Hidden params in JSON: debug=false, discount_rate
Time/State
Race conditions, post-delete session reuse
Client environment
Mobile UA -> legacy API with weaker auth
Business impact
"What's the $ damage if this breaks?"
3. Tactical Thinking (pattern detection)
Naming anomaly: userId everywhere but suddenly user_id -> different dev, weaker security
Error diff: Same 403 but different JSON structure -> different backend systems
200 but wrong body length/content: 200 OK with tiny response or "just a moment" text → WAF soft block, not a real response. Run bypass_403.sh to confirm and get baseline diff.
Environment diff: Prod vs Dev/Staging -> debug headers, CSP disabled
Version diff: JS file before/after update -> new endpoints, removed params
Supply chain: Check framework/library versions for known CVEs
5. AI-Assisted Thinking (model as a second analyst)
Use AI to expand hypotheses, not to declare verdicts. The model is a fast adversarial planner; the browser, proxy, and live requests are the proof layer.
Decompose the feature: ask for actors, assets, entry points, state transitions, and trust boundaries.
Generate sibling paths: versioned endpoints, mobile routes, legacy APIs, alternate roles, and admin-only variants.
Build a role matrix: anonymous, user A, user B, stale session, fresh session, admin, service account.
Ask for dev shortcuts: "Where would a tired developer skip a check or reuse a helper?"
Ask for chains: "If this bug is real, what bug B and C sit next to it?"
Turn ideas into requests: every AI suggestion must become a single reproducible HTTP experiment.
Kill weak signals fast: if AI cannot point to a concrete request, response diff, or cross-account delta, the idea stays as a hypothesis.
High-signal prompts:
"Given this endpoint and feature, list the 10 most likely trust-boundary mistakes."
"What sibling endpoints, methods, or roles should I test next?"
"Which bug class would a rushed implementation likely miss here?"
"What does the smallest proof request look like?"
"What would make this become a real report instead of a scanner hit?"
Amateur vs Pro: 7-Phase Comparison
Phase
Amateur
Pro
Recon
Main domain only
Shadow IT, dev environments, all assets
Discovery
Look for errors
Look for design contradictions, business logic flaws
Exploit
Give up when blocked
Build filter-bypass payloads
Escalation
Report the phenomenon only
Chain to real harm (session steal, ATO)
Feasibility
Include unrealistic conditions
Minimize attack prerequisites
Reporting
State facts only
Quantify business risk
Retest
Check if old PoC fails
Analyze fix method, find incomplete patches
Two Approach Routes
Route A (Feature-based): "This feature is complex" -> deep-dive its input handling -> find vuln
Route B (Vuln-based): "I want IDOR" -> find endpoints with sequential IDs -> test access control
Anti-Patterns (Stop Doing These)
Program hopping: Stick with one target minimum 2 weeks / 30 hours
Identity: Anonymous or authenticated? If the bugs you're hunting need a
session (IDOR, BOLA, privilege escalation, auth bypass, mass-assignment),
load auth once at session start — see docs/auth-sessions.md. Then
every downstream tool (httpx, katana, ffuf, nuclei, dalfox, PoC verifiers)
sends those headers automatically and audit log entries are stamped with
a stable session_id hash.
Route selection -- Wide or Deep?
Signal
Wide (recon sweep)
Deep (focused testing)
New program, first day
X
Wildcard scope *.target.com
X
Main webapp, been here >3 days
X
Scope update (new domain added)
X
Found interesting subdomain
X
Hunting IDOR / BOLA / auth bugs
X (auth-aware)
Phase 1: RECON
Goal: Maximize attack surface. Find what others missed.
Wide approach (initial sweep):
Subdomain enum -> DNS resolution -> HTTP probing -> Port scan -> Tech detect
Deep approach (targeted):
Google Dorks -> JS file download -> Hidden param discovery -> API mapping
What you find
Next action
Live subdomains with tech stack
Phase 2 (Mapping)
Known software (WordPress, Jira)
Check CVEs + defaults immediately
Cloud resources (S3, Firebase)
Test permissions (read/write/list)
403 or 200 + block page on endpoint
tools/bypass_403.sh <url> auto-detects soft blocks (200+block-body). Verdict: bypassed/needs_review/blocked. If all blocked after 5 min, skip
Nothing after 5 min on a host
Skip, try next host (5-minute rule)
Command: /recon target.com
After every recon (mandatory):
python3 tools/lead_board.py ingest target.com
python3 tools/lead_board.py show target.com
python3 tools/lead_board.py next target.com
# Route in plain language: "GraphQL endpoint → skills/graphql-audit"
# touch status when you start / kill / report a lead
/bypass-403 <url> → check verdict (not just status) → tools/waf_encoder.py "<payload>" → if upload: tools/multipart_mutator.py → 5 min, kill
Known software vuln (CVE)
1-day speed workflow
Nothing after 20 min on this endpoint
Rotate (20-minute rule)
Phase 4: PROVE & ESCALATE
Goal: Prove maximum business impact. Turn Low into Critical.
Escalation decision:
What did you find?
+-- XSS
| +-- Can steal cookie/token? -> Session hijack -> ATO
| +-- Cookie is HttpOnly? -> Force email change via XHR -> ATO
| +-- Self-XSS only? -> Find CSRF to trigger it
+-- IDOR
| +-- Can read PII? -> Automate scraping, show scale
| +-- Can change password/email? -> Direct ATO
| +-- UUID only? -> Find UUID leak source, then retry
+-- SSRF
| +-- DNS only? -> DON'T REPORT. Try cloud metadata
| +-- Can reach 169.254.169.254? -> Extract keys -> RCE
| +-- Internal port scan? -> Find Redis/K8s -> RCE
+-- SQLi
| +-- Error-based? -> Extract data (passwords, tokens)
| +-- Can INTO OUTFILE? -> Web shell -> RCE
| +-- Blind? -> Boolean/Time extraction
+-- Open Redirect
| +-- OAuth flow? -> Token theft -> ATO
| +-- javascript: scheme? -> XSS
+-- Blocked by defense
| -> Bypass (WAF/CSP/proxy/sanitizer/2FA)
+-- Low-impact, can't escalate alone
-> Find connector gadget for chain
After proving impact, check:
Can attack work with 0-1 clicks? (minimize prerequisites)
Does it affect all users or specific role?
What's the business $ impact?
Phase 5: VALIDATE & REPORT
Goal: Get paid. Make triager's job easy.
Pre-report gate:
Run /validate (7-Question Gate)
+-- All 7 pass? -> Write report
+-- Any fail? -> KILL the finding. Don't waste time.
+-- Borderline? -> Run /triage for quick go/no-go
Report:
Run /report
+-- Platform-specific format (H1/Bugcrowd/Intigriti/Immunefi)
+-- Title: [Bug Class] in [Endpoint] allows [role] to [impact]
+-- Impact-first summary (sentence 1 = what attacker CAN do)
+-- Exact HTTP requests in Steps to Reproduce
+-- Under 600 words
+-- CVSS 3.1 score that MATCHES actual impact
After submission:
While waiting for triage: try to escalate further (A->B signal method)
If fix deployed: re-test for bypass (incomplete patch = new bug)
Record finding with /remember for hunt memory
PART 3: NAVIGATION & TIMING
Non-Linear Navigation Quick Reference
I'm stuck because...
Go to...
Can't find any subdomains
Phase 1: Try different recon sources, Google Dorks
Found subdomain but don't know what to test
Phase 2: Map the app, download JS, understand auth
Testing but nothing works
Phase 3: Switch vuln class (20-min rotation rule)
Found a bug but impact is low
Phase 4: Escalation paths or gadget chaining
WAF/CSP/403 blocking my payload
/bypass-403 → fingerprint WAF → waf_encoder.py variants → kill if 5 min spent (403 even after /bypass-403 + WAF fingerprint + waf_encoder.py variants)
Been stuck for 45 min on one param
STOP. Rabbit hole. Move to next endpoint.
New API endpoint discovered during testing
Return to Phase 2: map it before attacking
Found one bug
A->B signal: same dev made more mistakes. Hunt 20 min for siblings.
20-Minute Rotation Clock
Every 20 minutes ask yourself: "Am I making progress?"
Yes -> Continue
No -> Rotate to next: endpoint -> subdomain -> vuln class -> target
Been on same target 2+ weeks with no findings? -> Consider switching program
Tool Routing by Phase
Phase
Tools
Why this order
Recon: Subdomains
subfinder -> amass -> puredns -> httpx
Passive first (no detection) -> resolve DNS -> probe HTTP + tech stack
Recon: URLs
gau + waymore -> katana -> uro
Archive (forgotten endpoints) -> active crawl (JS-rendered) -> deduplicate
Recon: JS
jsluice + mantra + trufflehog --only-verified
Extract URLs/secrets -> find API keys -> verify keys actually work
Recon: Ports
naabu (wide) -> rustscan (deep)
Fast top-1000 sweep -> full 65535 on interesting targets
Recon: Scan
nuclei -tags cve -> nuclei -tags takeover
Known CVEs first -> then takeover (act immediately)
After recon (ALWAYS)
python3 tools/lead_board.py ingest <target> → show → next
Route every signal to a hunt-* skill; never lose a lead. touch when you start/kill/report
Recon → lead ingest → EOL → scan (add --graphql / --cve-hunt as needed)
Session End Checklist
lead_board.py show <target> — any high-priority leads still new / stale?
Save all Burp/Caido project files
Record any "weird but not yet exploitable" behaviors (future gadgets)
Update notes with failed attempts (don't re-test with same techniques)
Log findings with /remember
touch every lead you killed or reported
1---2name: bb-methodology3description: Use at the START of any bug bounty hunting session, when switching targets, or when feeling lost about what to do next. Master orchestrator that combines the 5-phase non-linear hunting workflow with the critical thinking framework (developer psychology, anomaly detection, What-If experiments). Routes to all other skills based on current hunting phase. Also use when asking "what should I do next" or "where am I in the process."4---56# Bug Bounty Methodology: Workflow + Mindset
78Master orchestrator for hunting sessions. Combines the 5-phase non-linear workflow with the critical thinking framework that separates top 1% hunters from the rest.
910---
1112## PART 1: MINDSET (How to Think)
1314### Core Principle
1516Hunting is not "find a bug" -- it is "prove an attack scenario." Think like an attacker with a specific goal, not a scanner looking for patterns.
1718### Daily Discipline: Define, Select, Execute
1920Before touching any tool:
21221. **Define**: "Today I target [feature/domain] to achieve [CIA impact]"
232. **Select**: Choose 1-2 vuln classes (IDOR, Race Condition, etc.)
243. **Execute**: Focus ONLY on selected techniques. No wandering.
2526### 5 Ultimate Goals (Pick One Per Session)
27281. **Confidentiality** -- steal data the attacker shouldn't see
292. **Integrity** -- modify data the attacker shouldn't change
303. **Availability** -- disrupt service (app-level DoS only)
314. **Account Takeover** -- control another user's account
325. **RCE** -- execute commands on the server
3334### 4 Thinking Domains
3536#### 1. Critical Thinking (deep analysis)
3738**Question trust boundaries:**
39- Frontend control disabled? Send request directly via proxy
40- `user_role=user` cookie? Change to `admin`
41- `price=1000` in POST? Change to `1`
42- `<script>` blocked? Try `<img onerror=...>`
4344**Reverse-engineer developer psychology:**
45- Feature A has auth checks -> Similar feature B (newly added) probably doesn't
46- Complex flows (coupon + points + refund) -> Edge cases have bugs
47- `/api/v2/user` exists -> Does `/api/v1/user` still work with weaker auth?
4849**What-If experiments:**
50- Skip checkout -> hit `/checkout/success` directly
51- Skip 2FA -> navigate to `/dashboard`
52- Send coupon request 10x simultaneously -> Race condition?
53- Replace `guid=f8a2...` with `id=100` on sibling endpoint -> IDOR?
5455#### 2. Multi-Perspective (multiple angles)
5657| Perspective | What to check |
58|------------|---------------|
59| Horizontal (same role) | User A's token + User B's ID -> IDOR |
60| Vertical (different role) | Regular user -> `/admin/deleteUser` |
61| Data flow (proxy view) | Hidden params in JSON: `debug=false`, `discount_rate` |
62| Time/State | Race conditions, post-delete session reuse |
63| Client environment | Mobile UA -> legacy API with weaker auth |
64| Business impact | "What's the $ damage if this breaks?" |
6566#### 3. Tactical Thinking (pattern detection)
6768- **Naming anomaly**: `userId` everywhere but suddenly `user_id` -> different dev, weaker security
69- **Error diff**: Same 403 but different JSON structure -> different backend systems
70- **200 but wrong body length/content**: `200 OK` with tiny response or "just a moment" text → WAF soft block, not a real response. Run `bypass_403.sh` to confirm and get baseline diff.
71- **Environment diff**: Prod vs Dev/Staging -> debug headers, CSP disabled
72- **Version diff**: JS file before/after update -> new endpoints, removed params
73- **Supply chain**: Check framework/library versions for known CVEs
74- **Third-party integration**: Stripe/Auth0/Intercom -> webhook signature missing?
7576#### 4. Strategic Thinking (big picture)
7778- **Asymmetry**: Defender must patch ALL holes. You only need ONE.
79- **Intuition engineering**: Log why something "feels wrong." Verify later. Update mental DB.
80- **Unknown management**: Can't understand something? Add to "investigate later" list. Just-in-Time Learning.
8182#### 5. AI-Assisted Thinking (model as a second analyst)
8384Use AI to expand hypotheses, not to declare verdicts. The model is a fast adversarial planner; the browser, proxy, and live requests are the proof layer.
8586- **Decompose the feature**: ask for actors, assets, entry points, state transitions, and trust boundaries.
87- **Generate sibling paths**: versioned endpoints, mobile routes, legacy APIs, alternate roles, and admin-only variants.
88- **Build a role matrix**: anonymous, user A, user B, stale session, fresh session, admin, service account.
89- **Ask for dev shortcuts**: "Where would a tired developer skip a check or reuse a helper?"
90- **Ask for chains**: "If this bug is real, what bug B and C sit next to it?"
91- **Turn ideas into requests**: every AI suggestion must become a single reproducible HTTP experiment.
92- **Kill weak signals fast**: if AI cannot point to a concrete request, response diff, or cross-account delta, the idea stays as a hypothesis.
9394High-signal prompts:
95- "Given this endpoint and feature, list the 10 most likely trust-boundary mistakes."
96- "What sibling endpoints, methods, or roles should I test next?"
97- "Which bug class would a rushed implementation likely miss here?"
98- "What does the smallest proof request look like?"
99- "What would make this become a real report instead of a scanner hit?"
100101### Amateur vs Pro: 7-Phase Comparison
102103| Phase | Amateur | Pro |
104|-------|---------|-----|
105| Recon | Main domain only | Shadow IT, dev environments, all assets |
106| Discovery | Look for errors | Look for design contradictions, business logic flaws |
107| Exploit | Give up when blocked | Build filter-bypass payloads |
108| Escalation | Report the phenomenon only | Chain to real harm (session steal, ATO) |
109| Feasibility | Include unrealistic conditions | Minimize attack prerequisites |
110| Reporting | State facts only | Quantify business risk |
111| Retest | Check if old PoC fails | Analyze fix method, find incomplete patches |
112113### Two Approach Routes
114115- **Route A (Feature-based)**: "This feature is complex" -> deep-dive its input handling -> find vuln
116- **Route B (Vuln-based)**: "I want IDOR" -> find endpoints with sequential IDs -> test access control
117118### Anti-Patterns (Stop Doing These)
119120- **Program hopping**: Stick with one target minimum 2 weeks / 30 hours
121- **Tool-only hunting**: Automation finds duplicates. Manual testing finds unique bugs.
122- **Rabbit hole**: Max 45 min per parameter. Set a timer. If stuck, sleep on it.
123- **No goal**: "Just looking around" = wasted time. Always Define first.
124125---
126127## PART 2: WORKFLOW (What to Do)
128129### The 5-Phase Non-Linear Flow
130131```
132+-------------------------------------------------+
133| |
134| +----------+ +----------+ +----------+ |
135| | 1. RECON |---+| 2. MAP |---+| 3. FIND | |
136| +----------+ +-----+----+ +-----+-----+ |
137| ^ | | |
138| | v v |
139| | +----------+ +----------+ |
140| +----------| 4. PROVE |---+| 5. REPORT| |
141| +----------+ +----------+ |
142| |
143| Non-linear: stuck at any phase -> go back |
144| New API found at phase 3 -> return to phase 2 |
145| WAF blocks at phase 4 -> origin IP from phase 1 |
146+-------------------------------------------------+
147```
148149**THIS IS NOT LINEAR.** Move freely between phases. When stuck, return to a previous phase.
150151### Phase 0: SESSION START (Every Time)
152153**Before touching any tool, answer these:**
1541551. **Define**: "Today I target [feature/domain] to achieve [C/I/A/ATO/RCE]"
1562. **Select**: Choose 1-2 vuln classes (IDOR, XSS, SSRF, etc.)
1573. **Execute**: Focus ONLY on selected techniques
1584. **Identity**: Anonymous or authenticated? If the bugs you're hunting need a
159 session (IDOR, BOLA, privilege escalation, auth bypass, mass-assignment),
160 load auth **once** at session start — see `docs/auth-sessions.md`. Then
161 every downstream tool (httpx, katana, ffuf, nuclei, dalfox, PoC verifiers)
162 sends those headers automatically and audit log entries are stamped with
163 a stable `session_id` hash.
164165**Route selection -- Wide or Deep?**
166167| Signal | Wide (recon sweep) | Deep (focused testing) |
168|--------|-------------------|----------------------|
169| New program, first day | X | |
170| Wildcard scope `*.target.com` | X | |
171| Main webapp, been here >3 days | | X |
172| Scope update (new domain added) | X | |
173| Found interesting subdomain | | X |
174| Hunting IDOR / BOLA / auth bugs | | X (auth-aware) |
175176### Phase 1: RECON
177178**Goal**: Maximize attack surface. Find what others missed.
179180**Wide approach** (initial sweep):
181```
182Subdomain enum -> DNS resolution -> HTTP probing -> Port scan -> Tech detect
183```
184185**Deep approach** (targeted):
186```
187Google Dorks -> JS file download -> Hidden param discovery -> API mapping
188```
189190| What you find | Next action |
191|--------------|-------------|
192| Live subdomains with tech stack | Phase 2 (Mapping) |
193| Known software (WordPress, Jira) | Check CVEs + defaults immediately |
194| Cloud resources (S3, Firebase) | Test permissions (read/write/list) |
195| 403 **or 200 + block page** on endpoint | `tools/bypass_403.sh <url>` auto-detects soft blocks (200+block-body). Verdict: bypassed/needs_review/blocked. If all blocked after 5 min, skip |
196| Nothing after 5 min on a host | Skip, try next host (5-minute rule) |
197198**Command**: `/recon target.com`
199200**After every recon (mandatory):**
201```bash
202python3 tools/lead_board.py ingest target.com
203python3 tools/lead_board.py show target.com
204python3 tools/lead_board.py next target.com
205# Route in plain language: "GraphQL endpoint → skills/graphql-audit"
206# touch status when you start / kill / report a lead
207```
208(`hunt.py` runs ingest + EOL automatically unless `--skip-leads`.)
209210### Phase 2: MAPPING & ANALYSIS
211212**Goal**: Understand the app like its developer does.
213214**Checklist:**
215- [ ] Map all endpoints (Burp/Caido sitemap + JS analysis)
216- [ ] Identify auth model (cookie, JWT, OAuth, SAML?)
217- [ ] Find business-critical flows (payment, registration, password reset, data export)
218- [ ] Download and analyze JS files for hidden routes, secrets, logic
219- [ ] Identify roles and permissions (user, admin, API keys)
220- [ ] Note "weird" behaviors (anomalies in naming, errors, timing)
221222| What you find | Next action |
223|--------------|-------------|
224| JS files with interesting code | Taint analysis (Sink -> Source) |
225| OAuth/SAML authentication | OAuth/SAML checklist |
226| API with ID parameters | Phase 3, target IDOR |
227| Complex business logic (payment, coupon) | Phase 3, target BizLogic |
228| postMessage listeners | DOM analysis, postMessage-tracker |
229230### Phase 3: VULNERABILITY DISCOVERY
231232**Goal**: Find the bug. Use Error-based first, then Blind-based.
233234**Decision flow based on what you're testing:**
235236```
237What input are you testing?
238+-- ID parameter (user_id, order_id)
239| -> IDOR checklist
240+-- Search/filter/sort field
241| -> SQLi, NoSQLi probing
242+-- URL input / webhook / PDF gen
243| -> SSRF checklist
244+-- Text field reflected in page
245| -> XSS (DOM or reflected)
246+-- File upload
247| -> SVG XSS, web shell, path traversal
248+-- Price/quantity/coupon
249| -> Business logic, race conditions
250+-- Login / 2FA / password reset
251| -> Auth bypass
252+-- Profile update API
253| -> Mass Assignment
254+-- Template / wiki editor
255| -> SSTI
256+-- Nothing obvious
257 -> Fuzz with ffuf, try Error-based probing
258```
259260**Error vs Blind decision:**
2611. Try Error-based first (send `'`, `"`, `{{7*7}}`, `${7*7}`) -- watch for 500 errors, stack traces
2622. No error? Time-based (`SLEEP(10)`, `; sleep 10;`) -- watch response time
2633. No time diff? OOB (`curl attacker.com`, interactsh) -- watch for DNS callback
2644. Still nothing? Boolean (`AND 1=1` vs `AND 1=0`) -- watch content-length diff
265266| What you find | Next action |
267|--------------|-------------|
268| Low-impact behavior (redirect, self-XSS, cookie injection) | Chain it -- find a connector gadget |
269| Confirmed vuln (XSS, IDOR, SQLi) | Phase 4 (Prove and Escalate) |
270| Blocked by WAF/CSP/403 **or soft-block 200** | `/bypass-403 <url>` → check verdict (not just status) → `tools/waf_encoder.py "<payload>"` → if upload: `tools/multipart_mutator.py` → 5 min, kill |
271| Known software vuln (CVE) | 1-day speed workflow |
272| Nothing after 20 min on this endpoint | Rotate (20-minute rule) |
273274### Phase 4: PROVE & ESCALATE
275276**Goal**: Prove maximum business impact. Turn Low into Critical.
277278**Escalation decision:**
279```
280What did you find?
281+-- XSS
282| +-- Can steal cookie/token? -> Session hijack -> ATO
283| +-- Cookie is HttpOnly? -> Force email change via XHR -> ATO
284| +-- Self-XSS only? -> Find CSRF to trigger it
285+-- IDOR
286| +-- Can read PII? -> Automate scraping, show scale
287| +-- Can change password/email? -> Direct ATO
288| +-- UUID only? -> Find UUID leak source, then retry
289+-- SSRF
290| +-- DNS only? -> DON'T REPORT. Try cloud metadata
291| +-- Can reach 169.254.169.254? -> Extract keys -> RCE
292| +-- Internal port scan? -> Find Redis/K8s -> RCE
293+-- SQLi
294| +-- Error-based? -> Extract data (passwords, tokens)
295| +-- Can INTO OUTFILE? -> Web shell -> RCE
296| +-- Blind? -> Boolean/Time extraction
297+-- Open Redirect
298| +-- OAuth flow? -> Token theft -> ATO
299| +-- javascript: scheme? -> XSS
300+-- Blocked by defense
301| -> Bypass (WAF/CSP/proxy/sanitizer/2FA)
302+-- Low-impact, can't escalate alone
303 -> Find connector gadget for chain
304```
305306**After proving impact, check:**
307- [ ] Can attack work with 0-1 clicks? (minimize prerequisites)
308- [ ] Does it affect all users or specific role?
309- [ ] What's the business $ impact?
310311### Phase 5: VALIDATE & REPORT
312313**Goal**: Get paid. Make triager's job easy.
314315**Pre-report gate:**
316```
317Run /validate (7-Question Gate)
318+-- All 7 pass? -> Write report
319+-- Any fail? -> KILL the finding. Don't waste time.
320+-- Borderline? -> Run /triage for quick go/no-go
321```
322323**Report:**
324```
325Run /report
326+-- Platform-specific format (H1/Bugcrowd/Intigriti/Immunefi)
327+-- Title: [Bug Class] in [Endpoint] allows [role] to [impact]
328+-- Impact-first summary (sentence 1 = what attacker CAN do)
329+-- Exact HTTP requests in Steps to Reproduce
330+-- Under 600 words
331+-- CVSS 3.1 score that MATCHES actual impact
332```
333334**After submission:**
335- [ ] While waiting for triage: try to escalate further (A->B signal method)
336- [ ] If fix deployed: re-test for bypass (incomplete patch = new bug)
337- [ ] Record finding with `/remember` for hunt memory
338339---
340341## PART 3: NAVIGATION & TIMING
342343### Non-Linear Navigation Quick Reference
344345| I'm stuck because... | Go to... |
346|----------------------|----------|
347| Can't find any subdomains | Phase 1: Try different recon sources, Google Dorks |
348| Found subdomain but don't know what to test | Phase 2: Map the app, download JS, understand auth |
349| Testing but nothing works | Phase 3: Switch vuln class (20-min rotation rule) |
350| Found a bug but impact is low | Phase 4: Escalation paths or gadget chaining |
351| WAF/CSP/403 blocking my payload | `/bypass-403` → fingerprint WAF → `waf_encoder.py` variants → kill if 5 min spent (403 even after `/bypass-403` + WAF fingerprint + `waf_encoder.py` variants) |
352| Been stuck for 45 min on one param | STOP. Rabbit hole. Move to next endpoint. |
353| New API endpoint discovered during testing | Return to Phase 2: map it before attacking |
354| Found one bug | A->B signal: same dev made more mistakes. Hunt 20 min for siblings. |
355356### 20-Minute Rotation Clock
357358Every 20 minutes ask yourself: **"Am I making progress?"**
359- Yes -> Continue
360- No -> Rotate to next: endpoint -> subdomain -> vuln class -> target
361- Been on same target 2+ weeks with no findings? -> Consider switching program
362363### Tool Routing by Phase
364365| Phase | Tools | Why this order |
366|-------|-------|----------------|
367| Recon: Subdomains | `subfinder` -> `amass` -> `puredns` -> `httpx` | Passive first (no detection) -> resolve DNS -> probe HTTP + tech stack |
368| Recon: URLs | `gau` + `waymore` -> `katana` -> `uro` | Archive (forgotten endpoints) -> active crawl (JS-rendered) -> deduplicate |
369| Recon: JS | `jsluice` + `mantra` + `trufflehog --only-verified` | Extract URLs/secrets -> find API keys -> verify keys actually work |
370| Recon: Ports | `naabu` (wide) -> `rustscan` (deep) | Fast top-1000 sweep -> full 65535 on interesting targets |
371| Recon: Scan | `nuclei -tags cve` -> `nuclei -tags takeover` | Known CVEs first -> then takeover (act immediately) |
372| **After recon (ALWAYS)** | `python3 tools/lead_board.py ingest <target>` → `show` → `next` | Route every signal to a `hunt-*` skill; never lose a lead. `touch` when you start/kill/report |
373| After recon: EOL | `python3 tools/eol_check.py --tech "php=7.4,nginx=1.18"` | Flag EOL products from `technologies.txt` fingerprints |
374| Mapping: Params | `arjun` + `paramspider` + ParamMiner / `tools/param_discovery.sh` | Brute-force hidden params + mine archives + cache headers |
375| Mapping: GraphQL | `bash tools/graphql_audit.sh <url>` | Introspection → fingerprint → batching → IDOR → injection |
376| Mapping: CI/CD | `bash tools/cicd_scanner.sh owner/repo` | Workflow injection / secret exfil / runner poisoning |
377| Mapping: JS code | Download -> `jsluice` -> VS Code/Cursor grep | Extract -> static analysis -> AI-assisted taint analysis |
378| Mapping: Dorks | Manual Google Dorks | Custom per-target queries find what automation misses |
379| Discovery: Fuzz | `ffuf -ac` + `cewl` custom wordlist | Auto-calibrate filtering + target-specific words beat generic lists |
380| Discovery: XSS | `kxss` -> `dalfox` | Filter (which params reflect?) -> scan (only reflective params) |
381| Discovery: SQLi | `ghauri` | Modern blind SQLi on ID-like parameters |
382| Discovery: SSRF | `interactsh-client` | Self-hosted OOB listener for blind SSRF/XXE/RCE |
383| Discovery: WAF | `wafw00f` → `tools/bypass_403.sh` → `tools/waf_encoder.py` → `waf_response_analyzer.py` | Fingerprint → soft-block aware bypass → encoded variants → score response |
384| Exploit: 403 | `tools/bypass_403.sh` / `byp4xx` | Soft-block (200+block body) aware; verdict: bypassed/needs_review/blocked |
385| Exploit: Upload | `tools/multipart_mutator.py --file shell --field f` | Parser-confusion multipart variants |
386| Exploit: Takeover | `tools/takeover_scanner.sh` / `subzy` | CNAME against vulnerable services |
387| Exploit: Cloud | `tools/cloud_recon.sh` + `aws` CLI | Scan bucket permissions -> extract metadata credentials |
388| Exploit: Secrets | `tools/secrets_hunter.sh` / `trufflehog --only-verified` | Only verified working keys (no false positives) |
389| Orchestrate | `python3 tools/hunt.py --target T` | Recon → lead ingest → EOL → scan (add `--graphql` / `--cve-hunt` as needed) |
390391### Session End Checklist
392393- [ ] `lead_board.py show <target>` — any high-priority leads still `new` / stale?
394- [ ] Save all Burp/Caido project files
395- [ ] Record any "weird but not yet exploitable" behaviors (future gadgets)
396- [ ] Update notes with failed attempts (don't re-test with same techniques)
397- [ ] Log findings with `/remember`
398- [ ] `touch` every lead you killed or reported
Run npx skillmds@latest add shuvonsec/bb-methodology in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Use at the START of any bug bounty hunting session, when switching targets, or when feeling lost about what to do next. Master orchestrator that combines the 5-phase non-linear hunting workflow with the critical thinking framework (developer psychology, anomaly detection, What-If experiments). Routes to all other skills based on current hunting phase. Also use when asking "what should I do next" or "where am I in the process." It is listed under Productivity on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Capability flags: makes network calls, reads secrets. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
shuvonsec (@shuvonsec) published this skill. Their other Agent Skills are listed on their SkillMD profile.