Bug Bounty Hunting: How to Find Your First Vulnerability

Bug bounty hunting is one of the most interesting ways to learn cybersecurity and potentially earn serious money doing it. Companies like Google, Meta, Microsoft, and thousands of others pay researchers to find vulnerabilities in their products before attackers do. In 2026, the top bug hunters earn six figures annually from bounty programs. This guide shows you exactly how to start — from choosing your first program to writing a report that actually gets paid.

Understanding the Ecosystem

Bug bounty programs live on platforms (HackerOne, Bugcrowd, Intigriti, Synack) or run privately through companies’ own security pages. Each program has a scope — what assets you are allowed to test — and an out-of-scope list — what you must never touch. Reading the scope document is not optional: testing out-of-scope targets can get your account banned and potentially create legal issues.

Choosing Your First Program

  • Wide scope programs — prefer programs that say “*.company.com” instead of “app.company.com”. More targets means more opportunities.
  • New programs — recently launched programs often have more unfound bugs. Set alerts on HackerOne for new programs.
  • Programs with good response times — check the “average time to first response” and “average time to bounty” stats on the platform
  • Avoid programs paying only $50 if you want income — focus on programs with $500+ minimum for medium findings

Phase 1: Reconnaissance — Your Competitive Advantage

Most successful bug hunters spend 70% of their time on recon. Finding attack surface that other hunters have missed is how you find bugs in mature, well-tested programs.

# Subdomain enumeration — find the full attack surface
amass enum -d target.com -passive -o amass_output.txt
subfinder -d target.com -o subfinder_output.txt
cat amass_output.txt subfinder_output.txt | sort -u > all_subdomains.txt

# Probe for live hosts:
httpx -l all_subdomains.txt -o live_hosts.txt -status-code -title -tech-detect

# Screenshot all live hosts (visual recon):
gowitness file -f live_hosts.txt --screenshot-path screenshots/
# Quickly review screenshots for forgotten/abandoned apps
# Find new assets via Certificate Transparency:
curl "https://crt.sh/?q=%25.target.com&output=json" | jq '.[].name_value' | sort -u

# GitHub recon — find leaked secrets, internal endpoints, API keys:
github-search "target.com api_key"
github-search "target.com secret"
github-search "target.com internal"

# Wayback Machine — find old endpoints that still work:
waybackurls target.com | tee wayback.txt
# Filter for interesting patterns:
cat wayback.txt | grep -E ".php|admin|api|upload|debug"

Phase 2: Vulnerability Discovery

The High-Value Bugs to Hunt First

  • IDOR — Find authenticated endpoints, create two accounts, swap IDs. Pays $500–$5,000+
  • SSRF — Find URL input fields (webhooks, PDF generators, image fetchers) and try internal addresses. Can lead to cloud credential theft.
  • Stored XSS — Find input fields that display data to other users. Profile names, comments, file upload names.
  • Subdomain Takeover — Find subdomains pointing to deprovisioned services (Heroku, GitHub Pages, S3). Easy to find, easy to report.
  • Open Redirect — Parameters like ?redirect=, ?next=, ?url=. Test: ?next=https://evil.com

Subdomain Takeover — The Easiest Win

# Find dangling CNAMEs (pointing to unclaimed external services):
while read sub; do
  cname=$(dig +short CNAME $sub 2>/dev/null)
  if [ -n "$cname" ]; then
    echo "$sub -> $cname"
  fi
done < all_subdomains.txt

# Check if the CNAME target returns a "page not found" from the provider:
# "There is no app at this address." → Heroku takeover possible
# "NoSuchBucket" → S3 bucket takeover possible
# "Repository not found" → GitHub Pages takeover possible

# Tool: subjack automates this entire check:
subjack -w all_subdomains.txt -t 100 -timeout 30 -o possible_takeovers.txt

Phase 3: Writing a Report That Gets Paid

A poor report means a low bounty or a “won’t fix” response. A great report gets paid faster and at a higher rate. Here is the structure:

  1. Title — Specific and descriptive: “IDOR in /api/orders/ORDER_ID allows any authenticated user to view other customers’ order details and billing addresses”
  2. Severity — Include your CVSS score and reasoning
  3. Description — One paragraph explaining the vulnerability concept
  4. Steps to Reproduce — Numbered, explicit, reproducible. Include exact URLs, request/response pairs, and what to look for
  5. Impact — What could an attacker do with this? Data access, account takeover, financial loss?
  6. Proof of Concept — Screenshots or a screen recording demonstrating the attack
  7. Remediation — Brief suggestion on how to fix it

Building a Reputation and Sustainable Income

  • Specialize — Be the best at one vulnerability type (IDOR, SSRF, mobile) rather than average at all
  • Automate recon — Build personal automation that monitors for new subdomains and endpoints on your target programs
  • Consistency — Most top hunters test daily, even for 1–2 hours
  • Disclose responsibly — Follow each program’s disclosure timeline. Never publicly disclose without permission.
  • Network — The bug bounty community is generous with tips. Twitter/X and Discord communities share techniques actively