Security Bounty Hunter
Hunt for exploitable, bounty-worthy security issues. Bias toward remotely reachable, user-controlled attack paths — discard patterns that bounty platforms routinely reject as informative or out of scope.
When to Use
- Scanning a repository for exploitable vulnerabilities
- Preparing a Huntr, HackerOne, or similar bounty submission
- Triage where the question is "does this actually qualify for a payout?" rather than "is this theoretically unsafe?"
When NOT to Use
For broad best-practices audits, use security-scan or evaluate-repository instead.
In-Scope Patterns
| Pattern |
CWE |
Typical impact |
| SSRF through user-controlled URLs |
CWE-918 |
internal network access, cloud metadata theft |
| Auth bypass in middleware or API guards |
CWE-287 |
unauthorized account or data access |
| Remote deserialization or upload-to-RCE |
CWE-502 |
code execution |
| SQL injection in reachable endpoints |
CWE-89 |
data exfiltration, auth bypass |
| Command injection in request handlers |
CWE-78 |
code execution |
| Path traversal in file-serving paths |
CWE-22 |
arbitrary file read or write |
| Auto-triggered XSS |
CWE-79 |
session theft, admin compromise |
Usually Out of Scope (skip unless program says otherwise)
- Local-only
pickle.loads, eval() with no remote path
shell=True on fully hardcoded commands
- Missing security headers alone
- Generic rate-limiting without exploit impact
- Self-XSS requiring victim to paste code manually
- Demo, example, or test-only code
Workflow
- Check scope — program rules, SECURITY.md, disclosure channel, exclusions
- Find real entrypoints — HTTP handlers, uploads, webhooks, background jobs, parsers
- Run static triage — use
grep / powershell for pattern scanning; treat as triage input only
- Read the real code path end to end — follow data from entrypoint to sink
- Prove user control reaches a meaningful sink
- Confirm exploitability with the smallest safe PoC
- Check for duplicates — existing advisories, CVEs, open tickets
Static Triage Patterns
# Find potential injection sinks
grep -r "exec\|eval\|system\|popen\|subprocess" src/ --include="*.py" -n
grep -r "shell=True" src/ --include="*.py" -n
# Find potential SSRF
grep -r "requests.get\|urllib\|fetch\|axios" src/ --include="*.py" --include="*.ts" -n
# Find potential SQL injection
grep -r "f\"SELECT\|f'SELECT\|\+ .* WHERE\|string.*query" src/ -n
Then manually filter: drop tests, demos, fixtures, vendored code, non-reachable paths.
Report Structure
## Description
[What the vulnerability is and why it matters]
## Vulnerable Code
[File path, line range, and a small snippet]
## Proof of Concept
[Minimal working request or script]
## Impact
[What the attacker can achieve]
## Affected Version
[Version, commit, or deployment target tested]
Quality Gate
Before submitting, confirm all of:
See Also
1---2name: security-bounty-hunter3description: Use when the goal is practical vulnerability discovery for responsible disclosure or bounty submission — focuses on remotely reachable, exploitable issues that qualify for real reports rather than a broad best-practices review4---56# Security Bounty Hunter78Hunt for exploitable, bounty-worthy security issues. Bias toward remotely reachable, user-controlled attack paths — discard patterns that bounty platforms routinely reject as informative or out of scope.910## When to Use1112- Scanning a repository for exploitable vulnerabilities13- Preparing a Huntr, HackerOne, or similar bounty submission14- Triage where the question is "does this actually qualify for a payout?" rather than "is this theoretically unsafe?"1516## When NOT to Use1718For broad best-practices audits, use [`security-scan`](../security-scan/SKILL.md) or [`evaluate-repository`](../evaluate-repository/SKILL.md) instead.1920## In-Scope Patterns2122| Pattern | CWE | Typical impact |23|---------|-----|----------------|24| SSRF through user-controlled URLs | CWE-918 | internal network access, cloud metadata theft |25| Auth bypass in middleware or API guards | CWE-287 | unauthorized account or data access |26| Remote deserialization or upload-to-RCE | CWE-502 | code execution |27| SQL injection in reachable endpoints | CWE-89 | data exfiltration, auth bypass |28| Command injection in request handlers | CWE-78 | code execution |29| Path traversal in file-serving paths | CWE-22 | arbitrary file read or write |30| Auto-triggered XSS | CWE-79 | session theft, admin compromise |3132## Usually Out of Scope (skip unless program says otherwise)3334- Local-only `pickle.loads`, `eval()` with no remote path35- `shell=True` on fully hardcoded commands36- Missing security headers alone37- Generic rate-limiting without exploit impact38- Self-XSS requiring victim to paste code manually39- Demo, example, or test-only code4041## Workflow42431. **Check scope** — program rules, SECURITY.md, disclosure channel, exclusions442. **Find real entrypoints** — HTTP handlers, uploads, webhooks, background jobs, parsers453. **Run static triage** — use `grep` / `powershell` for pattern scanning; treat as triage input only464. **Read the real code path end to end** — follow data from entrypoint to sink475. **Prove user control reaches a meaningful sink**486. **Confirm exploitability** with the smallest safe PoC497. **Check for duplicates** — existing advisories, CVEs, open tickets5051## Static Triage Patterns5253```powershell54# Find potential injection sinks55grep -r "exec\|eval\|system\|popen\|subprocess" src/ --include="*.py" -n56grep -r "shell=True" src/ --include="*.py" -n5758# Find potential SSRF59grep -r "requests.get\|urllib\|fetch\|axios" src/ --include="*.py" --include="*.ts" -n6061# Find potential SQL injection62grep -r "f\"SELECT\|f'SELECT\|\+ .* WHERE\|string.*query" src/ -n63```6465Then manually filter: drop tests, demos, fixtures, vendored code, non-reachable paths.6667## Report Structure6869```markdown70## Description71[What the vulnerability is and why it matters]7273## Vulnerable Code74[File path, line range, and a small snippet]7576## Proof of Concept77[Minimal working request or script]7879## Impact80[What the attacker can achieve]8182## Affected Version83[Version, commit, or deployment target tested]84```8586## Quality Gate8788Before submitting, confirm all of:8990- [ ] Code path is reachable from a real user or network boundary91- [ ] Input is genuinely user-controlled92- [ ] Sink is meaningful and exploitable93- [ ] PoC works94- [ ] Issue is not already covered by an advisory, CVE, or open ticket95- [ ] Target is in scope for the bounty program9697## See Also9899- [security-scan](../security-scan/SKILL.md) — OWASP Top 10 + STRIDE broad audit100- [evaluate-repository](../evaluate-repository/SKILL.md) — scored security posture review101- [input-validation](../input-validation/SKILL.md) — sanitize and validate user inputs