Hi Vipul from The Hacker's Log here ๐
Alright, let's talk about money left on the table. ๐ธ
I've been doing bug bounties for three years now, and I've seen incredibly talented hackers โ people way smarter than me โ miss easy bugs over and over again. Not because they lack skills, but because they're making the same recon mistakes everyone makes.
I know this because I made ALL these mistakes. And they cost me thousands of dollars in missed bounties. ๐ญ
So here are the top 10 recon mistakes that are causing you to walk right past low-hanging fruit. Let's dive in. ๐
๐ Check out the ALL-IN-ONE Hacker Bundle here: ๐ https://thehackerslog.gumroad.com/l/allinone?layout=profile
Mistake #1: Running Every Tool Before Understanding Any Output ๐งโ
What hackers do:
subfinder -d target.com -o subs.txt &
amass enum -d target.com -o amass.txt &
assetfinder --subs-only target.com >> assets.txt &
findomain -t target.com -u findomain.txt &
# Run everything in parallel! ๐Then they get 3,000+ subdomains andโฆ don't know what to do with them. ๐คทโโ๏ธ
Why it's wrong: You're collecting data, not understanding it. You end up with analysis paralysis.
What to do instead:
# Just use 1-2 tools max
subfinder -d target.com -o subs.txt
cat subs.txt | httpx -silent -tech-detect -status-code | tee live.txt
# Now actually READ the output
# Look for interesting patterns manually
cat live.txt | grep -iE "admin|staging|dev|test|api|internal" | tee interesting.txtPick 5โ10 interesting targets and actually investigate them. Quality over quantity. ๐ฏ
Mistake #2: Ignoring JavaScript Files ๐๐ซ
This is HUGE. Like, I can't stress this enough. JavaScript files are literal goldmines. ๐ฐ
What hackers do: They run automated scanners and move on. Never actually download and read the JS files.
Why it's wrong: JS files leak:
- API endpoints that aren't linked anywhere ๐
- Hardcoded secrets and API keys ๐
- Hidden parameters ๐๏ธ
- Internal function names and logic ๐ง
- Admin panel URLs ๐ช
What to do instead:
# Find all JS files
gospider -s "https://target.com" -o crawl/ -c 10 -d 3
cat crawl/* | grep "\.js" | grep -Eo "https?://[^\"']+" | sort -u | tee js_files.txt
# Download them
mkdir js_analysis
cat js_files.txt | while read url; do
wget -q "$url" -P js_analysis/
done
# Hunt for secrets ๐
grep -r -iE "api_key|apikey|secret|token|password|aws_access|bearer" js_analysis/
# Find API endpoints
grep -r -E "api/|/v1/|/v2/|/v3/|endpoint" js_analysis/ | tee api_endpoints.txt
# Look for interesting parameters
grep -r -E "\?[a-zA-Z_]+=|&[a-zA-Z_]+=" js_analysis/ | sort -uI've found multiple $1,000-$5,000 bugs just from reading JavaScript files. Don't skip this! โ ๏ธ
Mistake #3: Not Testing Old/Archived Endpoints ๐โ
What hackers do: They only test what's currently live and linked.
Why it's wrong: Old endpoints often:
- Still work but aren't maintained ๐๏ธ
- Have weaker security (old code) ๐
- Expose deprecated APIs with no auth ๐จ
- Leak sensitive data ๐พ
What to do instead:
# Use Wayback Machine
echo "target.com" | waybackurls | tee wayback.txt
# Filter interesting stuff
cat wayback.txt | grep -iE "\.json|\.xml|\.conf|\.bak|\.sql|admin|api|internal|dev" | tee wayback_interesting.txt
# Test if they still work
cat wayback_interesting.txt | httpx -silent -status-code -mc 200,403,401 | tee still_alive.txt
# Also use gau for more URLs
echo "target.com" | gau --blacklist png,jpg,gif,css,woff | tee gau_urls.txtReal example: Found a /api/v1/admin/users endpoint from 2019 that still worked but had no authentication. $3,200 payout. ๐ต
Mistake #4: Skipping Parameter Discovery ๐๏ธ๐ซ
What hackers do: They find an endpoint like /api/users?id=123 and only test the id parameter.
Why it's wrong: There might be hidden parameters like:
admin=true๐role=admin๐debug=1๐internal=true๐
What to do instead:
# Use Arjun to discover hidden parameters
arjun -u "https://target.com/api/users" -m GET -o params_found.txt
# Or use ffuf with a parameter wordlist
ffuf -w ~/wordlists/parameters.txt \
-u "https://target.com/api/users?FUZZ=test" \
-mc all -fc 404 \
-fr "error|invalid|not found"
# Also use ParamSpider
paramspider -d target.com -o paramspider_output.txtPro tip: Sometimes just trying common params manually works:
# Original request
curl "https://api.target.com/users?id=123"
# Try these
curl "https://api.target.com/users?id=123&admin=true"
curl "https://api.target.com/users?id=123&role=admin"
curl "https://api.target.com/users?id=123&debug=1"
curl "https://api.target.com/users?id=123&internal=1"Found an IDOR with &admin=1 parameter once. $2,500. ๐ฐ
Mistake #5: Not Fuzzing API Versions ๐ขโ
What hackers do: They find /api/v2/users and only test v2.
Why it's wrong: Older API versions often have:
- Weaker validation ๐ก๏ธ
- Missing authorization checks โ ๏ธ
- Deprecated but still functional endpoints ๐๏ธ
- More verbose error messages ๐
What to do instead:
# Fuzz for API versions
ffuf -w <(seq 1 20) -u "https://api.target.com/vFUZZ/users" -mc 200,401,403,500
# Also try these patterns
ffuf -w versions.txt -u "https://api.target.com/FUZZ/users" -mc all -fc 404
# versions.txt contains: v1, v2, v3, api/v1, api/v2, internal/v1, etc.
# Test different version formats
curl "https://api.target.com/v1/users"
curl "https://api.target.com/api/v1/users"
curl "https://api.target.com/internal/v1/users"
curl "https://api.target.com/1.0/users"Real example: v2 required auth, but v1 didn't. Both returned the same data. ๐คฆโโ๏ธ $1,800 bounty.
Mistake #6: Forgetting to Test Without Authentication ๐โ
What hackers do: They create an account, log in, and test everything authenticated.
Why it's wrong: You might miss broken authorization where endpoints work WITHOUT auth! ๐จ
What to do instead:
Test EVERY interesting endpoint twice:
# 1. With authentication (your normal testing)
curl -X GET "https://api.target.com/v2/admin/reports" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
# 2. WITHOUT authentication
curl -X GET "https://api.target.com/v2/admin/reports" \
-H "Content-Type: application/json"
# Also try with invalid/expired tokens
curl -X GET "https://api.target.com/v2/admin/reports" \
-H "Authorization: Bearer invalid_token_123" \
-H "Content-Type: application/json"Pro tip: Use Burp Suite's "Remove Authorization Header" extension to quickly test this.
I've found SO MANY broken authorization bugs this way. Easy money. ๐ธ
Mistake #7: Not Checking Source Code Repositories ๐ปโ
What hackers do: They never search GitHub, GitLab, or Bitbucket for the target's code.
Why it's wrong: Developers accidentally commit:
- API keys and secrets ๐
- Database credentials ๐๏ธ
- AWS access keys โ๏ธ
- Internal URLs and endpoints ๐
.envfiles with everything ๐
What to do instead:
# Use github-search or truffleHog
github-search -d "target.com" -t $GITHUB_TOKEN -o github_results.txt
# Or manual GitHub dorks (in GitHub search)
"target.com" api_key
"target.com" password
"target.com" secret
"target.com" token
"target.com" filename:.env
"target.com" extension:pem
"target.com" AWS_ACCESS_KEYAlso search for:
- Company name + "api"
- Product names
- Developer usernames (find in LinkedIn)
- Email domains (@target.com)
Real example: Found AWS credentials in a public repo. Reported immediately. $5,000 critical bounty. ๐ฅ
Mistake #8: Ignoring Subdomain Takeovers ๐๏ธโ
What hackers do: They find dead/broken subdomains and ignore them.
Why it's wrong: These are easy bugs! If a subdomain points to a service that doesn't exist anymore, you can often claim it. ๐ฏ
What to do instead:
# Find all subdomains
subfinder -d target.com -o subs.txt
# Check for takeovers with subjack
subjack -w subs.txt -t 100 -timeout 30 -o subjack_results.txt -ssl
# Or use subzy
subzy -targets subs.txt -concurrency 100 -hide_fails -output subzy_results.txt
# Manual check - look for these errors:
# - "No such app" (Heroku)
# - "There isn't a GitHub Pages site here" (GitHub Pages)
# - "Project not found" (GitLab)
# - "Repository not found" (Bitbucket)
# - "This domain is successfully pointed at WP Engine, but is not configured" (WPEngine)Pro tip: Also check CNAMEs pointing to S3 buckets that don't exist:
# Find CNAMEs
dig CNAME staging.target.com
# If it points to something.s3.amazonaws.com but returns 404
# Try creating that bucket! (Responsibly, for testing only)These are literally free money if you find them. ๐ฐ
Mistake #9: Not Testing Different HTTP Methods ๐โ
What hackers do: They only use GET requests.
Why it's wrong: Different HTTP methods might have different security:
- GET is read-only
- POST/PUT/PATCH might have weaker validation
- DELETE might work without auth
- OPTIONS might leak info ๐
What to do instead:
# Test all methods on an endpoint
curl -X GET "https://api.target.com/v2/users/123"
curl -X POST "https://api.target.com/v2/users/123" -d '{"admin":true}'
curl -X PUT "https://api.target.com/v2/users/123" -d '{"role":"admin"}'
curl -X PATCH "https://api.target.com/v2/users/123" -d '{"admin":1}'
curl -X DELETE "https://api.target.com/v2/users/123"
curl -X OPTIONS "https://api.target.com/v2/users/123"
# Sometimes even weird methods work
curl -X HEAD "https://api.target.com/v2/users/123"
curl -X TRACE "https://api.target.com/v2/users/123"Real example: GET /api/users/123 required auth. But PUT /api/users/123 didn't check authorization and let me modify any user. ๐คฏ $4,000 payout.
Mistake #10: Not Using Burp Suite Properly ๐ฅโ
What hackers do: They run automated scanners but never manually explore with Burp.
Why it's wrong: Burp shows you EVERYTHING:
- Hidden parameters in responses ๐๏ธ
- Cookies and headers you didn't notice ๐ช
- The actual API structure ๐บ๏ธ
- Unexpected behavior ๐
What to do instead:
Set up your browser to proxy through Burp:
# Set browser proxy to localhost:8080
# Or use Burp's embedded browserThen actually use the application like a normal user for 30โ60 minutes:
- Create an account โ๏ธ
- Click every button ๐ฑ๏ธ
- Try every feature ๐ฎ
- Fill out every form ๐
- Upload files ๐ค
- Change settings โ๏ธ
While doing this, watch the HTTP History tab in Burp constantly. ๐
Look for:
- API endpoints you didn't know existed
- Hidden parameters in JSON responses
- Interesting cookies or tokens
- IDs, UUIDs, or references to other users
- Error messages with sensitive info
- Debug headers or parameters
Pro tip: Use Burp's "Site Map" to see all discovered endpoints organized.
My "Easy Bugs" Recon Checklist โ
Here's a simple checklist I use for every target. It takes 2โ3 hours but finds bugs consistently:
# 1. Basic subdomain discovery (10 min)
subfinder -d target.com -o subs.txt
cat subs.txt | httpx -silent -tech-detect | grep -iE "admin|api|dev|staging" | tee interesting.txt
# 2. JavaScript analysis (30 min)
gospider -s "https://target.com" -d 3 -c 10 -o crawl/
# Download and grep JS files for secrets/endpoints
# 3. Wayback Machine (15 min)
echo "target.com" | waybackurls | grep -iE "json|xml|api|admin" | httpx -mc 200
# 4. Parameter discovery (20 min)
arjun -u "https://target.com/api/endpoint" -m GET
# 5. API version fuzzing (10 min)
ffuf -w <(seq 1 10) -u "https://api.target.com/vFUZZ/users" -mc all -fc 404
# 6. Test without auth (15 min)
# Try all interesting endpoints without tokens
# 7. GitHub search (20 min)
# Search for "target.com" + api_key, password, secret, .env
# 8. Subdomain takeover check (10 min)
subjack -w subs.txt -t 100 -o takeovers.txt
# 9. HTTP method testing (15 min)
# Try GET, POST, PUT, DELETE on key endpoints
# 10. Manual Burp exploration (45 min)
# Use the app normally, watch everything in BurpTotal time: ~3 hours per target ๐
Average bugs found: 1โ3 easy bugs per target ๐
Average payout: $1,000-$5,000 ๐ฐ
Real Results Using This Methodology ๐
Here are my last 5 bugs found using this exact approach:
- Unauthenticated API endpoint (Mistake #6) โ $4,500 ๐ต
- Hardcoded AWS key in JS (Mistake #2) โ $3,000 ๐ต
- Old API v1 with no auth (Mistakes #3 + #5) โ $2,200 ๐ต
- Hidden admin parameter (Mistake #4) โ $1,800 ๐ต
- Subdomain takeover (Mistake #8) โ $500 ๐ต
Total: $12,000 in one month from "easy bugs" that most hackers missed. ๐ฏ
The Mindset Shift ๐ง
Stop trying to be the hacker who finds the most subdomains.
Start being the hacker who understands the target better than anyone else. ๐
Stop running 10 tools in parallel.
Start running 2โ3 tools and actually analyzing the output. ๐
Stop looking for complex bugs.
Start finding the easy bugs everyone else walks past. ๐ถโโ๏ธโก๏ธ๐ฐ
Your Action Plan ๐
Here's what to do RIGHT NOW:
- Pick a bug bounty target you've already done recon on ๐ฏ
- Go through just Mistakes #2, #3, and #6 from this article โ
- Spend 1 hour on each mistake ๐
- I bet you'll find something new ๐
Seriously, try it. Come back and let me know what you found. ๐ฌ
The Tools You Actually Need ๐งฐ
You don't need 50 tools. Here's my essential kit:
Subdomain Discovery: ๐
subfinder- Fast and reliableamass(passive mode) - Historical data
HTTP Probing: ๐ป
httpx- Tech detection + status codes
Crawling/Spidering: ๐ท๏ธ
gospider- JS-heavy appsgau- Wayback URLswaybackurls- More Wayback data
Fuzzing: ๐ฅ
ffuf- Everything (endpoints, params, versions)
Parameter Discovery: ๐๏ธ
arjun- Hidden parametersparamspider- Parameter extraction
Subdomain Takeover: ๐๏ธ
subjack- Fast takeover detectionsubzy- Another good option
Manual Testing: ๐จโ๐ป
Burp Suite Pro- Non-negotiablecurl- Quick API testing- Browser DevTools โ Underrated
Source Code: ๐ป
github-search- Search GitHubtruffleHog- Find secrets
That's it. Maybe 12 tools total. Master these instead of installing 100 random tools. ๐ฏ
๐ฅ ALL-IN-ONE HACKER BUNDLE
This bundle is built for hackers who want results, not tool overload.
Inside, you'll get:
โ Step-by-step recon checklists โ Real-world bug bounty testing workflows โ Curated payload collections for common vulnerabilities โ Practical methodology notes I use during live targets โ A structured process so you stop guessing what to test next
Instead of:
"I found an endpointโฆ now what?"
You'll have:
A clear list of what to test, how to test it, and what bugs to look for.
It's basically the system behind the tips you just read in this article โ but organized so you can reuse it on every target.
๐ฏ Perfect for:
- Beginners who feel overwhelmed
- Intermediate hunters who want more consistency
- Anyone tired of running tools without a plan
๐ Check out the ALL-IN-ONE Hacker Bundle here: ๐ https://thehackerslog.gumroad.com/l/allinone?layout=profile
Final Thoughts ๐ญ
The biggest lesson I've learned in bug bounties: Easy bugs are everywhere. ๐
Most hackers are looking for complex chain vulnerabilities and 0-days. Meanwhile, there are literally thousands of basic bugs just sitting there:
- Unauthenticated endpoints ๐
- Old API versions with no security ๐
- Hardcoded secrets in JavaScript ๐
- Broken authorization ๐จ
- Subdomain takeovers ๐๏ธ
These aren't sexy. They won't get you Twitter clout. ๐ฑ
But they WILL get you paid. ๐ฐ
And honestly? Getting paid $2,000 for finding a simple unauth'd API endpoint feels pretty damn good. ๐
๐ Connect With Us
- ๐ Website: https://thehackerslog.com/
- ๐ Substack: https://thehackerslog.substack.com/
- ๐ LinkedIn: The Hackers Log
- โ๏ธ Medium: @vipulsonule71