bounty-hunting-methodology
Bug bounty white-box hunting methodology. Load when the target is an open-source project with a security advisory program, bug bounty, or responsible disclosure policy.
- License 许可
- Apache-2.0
- 所属仓库
- Akapi895/raptix
- 最近更新
- 2026-11-06
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- bounty-hunting-methodology
- metadata
- { "subdomain": "analyst", "when_to_use": "bug bounty white-box methodology open source security advisory program responsible disclosure policy h1 bugcrowd", "upstream_ref": "Raptix analyst lane: white-box bounty hunting methodology" }
- description
- Bug bounty white-box hunting methodology. Load when the target is an open-source project with a security advisory program, bug bounty, or responsible disclosure policy.
03 SKILL.md 正文
Bug Bounty Hunting Methodology
You are not scanning. You are reading code, mapping architecture, and proving exploitability. Volume is the enemy — signal is the metric. Every report must survive triage by an experienced security engineer.
Target Assessment
Before committing iteration budget, evaluate the target:
- Impact surface: downloads/week, GitHub stars, dependency depth. A vuln in lodash or React Router has 10-100x the impact of a vuln in a 200-star project.
- Trust boundary complexity: Does the app load config from untrusted sources? Handle plugins? Parse user-controlled serialized data? Multi-tenant auth? Complex trust boundaries = more attack surface.
- Security advisory history: Check
github.com/advisories?query=<package>. Projects that accept and credit researchers will work with you. Projects with zero advisories are either very secure or don't have a disclosure process. - Reward program: HackerOne, Bugcrowd, Immunefi, GitHub Security Advisories, Google VRP. Check scope, excluded vuln classes, and reward tiers.
Record the assessment (kg_record from your KG slot):
kg_record('[{"kind": "Repository", "key": "repo::<name>", "label": "<name>",
"props": {"stars": N, "downloads_weekly": N,
"has_security_policy": true, "advisory_count": N,
"bounty_program": "hackerone"}}]')
White-Box Methodology
This is the core loop. Fork. Read. Trace. Prove.
Step 1 — Map the project
find /workspace/target -name 'package.json' -o -name 'pyproject.toml' \
-o -name 'go.mod' -o -name 'Cargo.toml' -o -name 'composer.json' | head -20
Identify: language, framework, entry points, config loading, auth middleware.
Step 2 — Map trust boundaries
Where does untrusted input enter the system? Trace these sources:
- HTTP request params, headers, body
- Environment variables and
.envfiles - Config files from current directory (
.gemini/settings.json,.vscode/settings.json) - Plugin/extension loading paths
- Deserialization of user-controlled data (pickle, YAML, JSON with class hints)
- IPC channels, WebSocket messages, MCP tool inputs
For each source, record an ENTRYPOINT observation:
kg_record('[{"kind": "Entrypoint", "key": "entrypoint::POST /api/upload body",
"label": "POST /api/upload body",
"props": {"type": "http", "file": "routes/upload.py", "line": 42}}]')
Step 3 — Identify crown jewels
What is the most valuable thing an attacker could reach?
- Admin access / account takeover
- RCE / command execution
- Database contents / PII
- Secret keys / credentials
- File system read/write
Add CROWN_JEWEL nodes for each.
Step 4 — Trace source → sink
For each entrypoint, trace the data flow to dangerous sinks:
exec(),eval(),spawn(),subprocess.run(),os.system()db.query()with string interpolationrender()/innerHTMLwith unescaped inputopen()/readFile()with user-controlled pathspickle.loads(),yaml.unsafe_load(),JSON.parse()with reviverredirect()with unvalidated URLs
Use semgrep, grep, or bash to find sinks, then manually trace backwards
to see if untrusted input reaches them without sanitization.
Step 5 — Prove or discard
Every finding MUST go through validate_finding with:
- A working
poc_command success_patternsthat uniquely match the exploit signal- A
negative_command(same request without payload) negative_patternsmatching the baseline response- Full
cvss_vectorstring
If you cannot reproduce it, it is NOT a finding. Record the failure and move on.
High-Value Vulnerability Classes
Prioritize by typical bounty payout and acceptance rate:
- Remote Code Execution — deserialization, template injection, command injection,
unsafe
eval/exec,shell: truewith user input. Highest payouts. - Access Control Bypass — IDOR, BOLA, missing ownership validation, broken function-level authorization. Most common accepted finding class.
- Authentication Bypass — token leakage, session fixation, OAuth state confusion,
JWT
alg=none, password reset flaws. - Path Traversal / File Write — directory escape in upload/download handlers, session file storage with crafted IDs, zip slip.
- Server-Side Request Forgery — redirect bypass, DNS rebinding, cloud metadata access via internal URL parameters.
- Injection — SQLi, XSS (stored > reflected), LDAP injection, GraphQL injection.
- Information Disclosure — API key leakage, user enumeration via error codes, schema/debug endpoint exposure, directory listing.
Report Title Convention
Every report title MUST follow: [Impact] via [Mechanism] in [Component]
Good:
- "Path traversal in plugin file upload enables arbitrary directory deletion and file write"
- "Cloud function validator bypass via prototype chain traversal"
- "Unauthenticated SSRF via HTTP redirect bypass in LiveLinks proxy"
Bad:
- "XSS vulnerability found" (no mechanism, no component)
- "Possible SQL injection" (speculative)
- "Security issue in API" (says nothing)
What NOT to Do
- Do NOT submit without a validated PoC
- Do NOT inflate CVSS beyond demonstrated impact
- Do NOT submit theoretical findings ("an attacker could potentially...")
- Do NOT spam multiple low-quality reports — one rejected report damages signal
- Do NOT submit to out-of-scope targets
- Do NOT submit duplicate findings without checking your recorded
findings (workspace
findings/+inspect_evidence)
04 同仓库更多 Skills
wps-pixie-dust
WPS Pixie-Dust offline nonce attack (reaver -K / pixiewps) and fallback online PIN brute (bully) to recover the AP's WPA PSK without capturing a handshake.
wpa3-sae
WPA3-SAE transition-mode downgrade (DragonShift), SSID Confusion CVE-2023-52424, Dragonblood side-channels, and SAE captive-portal credential recovery against WPA3-Personal networks.
wpa2-psk
WPA/WPA2-PSK handshake capture via targeted deauth + PMKID (no deauth required) + offline hashcat cracking. The most common consumer/SMB encryption mode in 2026.
wpa-enterprise-eap
WPA/WPA2/WPA3-Enterprise (802.1X/EAP) rogue-RADIUS evil-twin for MSCHAPv2 capture, GTC downgrade, and PEAP relay. MSCHAPv2 capture equals a NetNTLM hash — the primary wireless on-ramp to Active Directory.
krack-fragattacks
KRACK key-reinstallation (CVE-2017-13077..13082) and FragAttacks fragmentation/aggregation flaws (CVE-2020-24586..24588, CVE-2020-26139..26147) against legacy or embedded 802.11 supplicants with poor patch cadence.
evil-twin-karma
Evil-twin rogue AP with KARMA/Mana PNL-probe response, captive-portal credential capture, and post-association MITM for PSK/open networks. Distinct from wpa-enterprise-eap which targets 802.1X.