hackerone-recon · git:20260731.af2d5ac · 2026-07-31 · sha256 2ba70e908f0e3780
hackerone-recon git:20260731.af2d5acA
Immutable. This exact content is served forever at /api/v1/blob/2ba70e908f0e3780.
---
name: hackerone-recon
description: Pre-engagement reconnaissance workflow using HackerOne MCP tools to enumerate program scope, study prior disclosures, and identify high-value targets. Use when starting a new HackerOne program engagement, building an asset inventory, or planning target selection before active testing.
---
# HackerOne Pre-Engagement Recon
Prerequisite: HackerOne MCP server running with valid credentials (`H1_USERNAME` + `H1_API_TOKEN`). Verify with `hackerone_health`.
## Phase 1: Program Intelligence
### 1.1 Retrieve program details
```
hackerone_get_program(program_handle="<handle>")
```
Extract: program type (bounty vs VDP), submission state, response metrics, bounty splitting, excluded vuln types, severity thresholds.
**Checkpoint:** If program is not accepting submissions, stop. If response metrics show >30 day triage, prepare stronger evidence.
### 1.2 Enumerate scope assets
```
hackerone_get_program_scope(program_handle="<handle>")
```
Record for each asset: type, identifier, bounty eligibility, max severity, per-asset instructions.
**Prioritize:** (1) bounty-eligible + critical severity cap, (2) wildcard domains, (3) API endpoints, (4) recently added assets.
### 1.3 Map accepted weaknesses
```
hackerone_get_program_weaknesses(program_handle="<handle>")
```
Record CWE categories accepted. You need `weakness_id` values for report submission.
## Phase 2: Prior Art Analysis
### 2.1 Study disclosed reports
```
hackerone_search_hacktivity(program="<handle>")
```
Identify: previously found vuln types, bounty amounts by severity, triage patterns. Avoid duplicating known findings.
### 2.2 Review your own history
```
hackerone_search_reports(program="<handle>")
```
Check for `informative`/`not-applicable` verdicts (understand rejections), `duplicate` (known issues), `triaged`/`new` (avoid testing same surface).
## Phase 3: Target Selection
1. Build asset inventory with types, bounty eligibility, max severity
2. Cross-reference with hacktivity -- deprioritize heavily-tested surfaces
3. Record `structured_scope_id` for each target
4. Record `weakness_id` for expected vuln types
5. Respect per-asset instructions and policy restrictions
**Checkpoint:** Before active testing, confirm you have: scope IDs, weakness IDs, asset inventory, and have read the full program policy.
## Phase 4: Report Submission
After the reporting pipeline (`assess_confidence` -> `report-preflight` -> `exploit-verifier` -> `report_item`):
```
hackerone_submit_report(
program_handle="<handle>",
title="[Vuln Type] in [Component] Leads to [Impact]",
vulnerability_information="<detailed report with PoC>",
impact="<concrete impact statement>",
severity_rating="<none|low|medium|high|critical>",
weakness_id="<CWE weakness ID from Phase 1.3>",
structured_scope_id="<scope asset ID from Phase 1.2>"
)
```
Monitor with `hackerone_get_report_activities`. Respond to triager questions via `hackerone_add_comment`.
## Anti-Patterns
- **Skipping Phase 1** -- wastes time on excluded categories, risks violating rules
- **Submitting without scope/weakness IDs** -- signals low researcher quality
- **Skipping verification pipeline** -- leads to `informative` verdicts
- **Ignoring hacktivity** -- submitting known duplicates damages signal score
- **Testing out-of-scope assets** -- findings closed as `not-applicable`