A Practical Workflow for Fuzzing and Scanning in Bug Bounty
quality 7/10 · good
0 net
Tags
A Practical Workflow for Fuzzing and Scanning in Bug Bounty | by ππ€π¨π©π¨ππ | in InfoSec Write-ups - Freedium
Milestone: 20GB Reached
Weβve reached 20GB of stored data β thank you for helping us grow!
Patreon
Ko-fi
Liberapay
Close
< Go to the original
A Practical Workflow for Fuzzing and Scanning in Bug Bounty
How to Systematically expand your attack surface, eliminate noise and find the bugs others miss.
ππ€π¨π©π¨ππ
Follow
InfoSec Write-ups
Β·
~7 min read
Β·
March 26, 2026 (Updated: March 26, 2026)
Β·
Free: No
Introduction
In Bug Bounty hunting, the line between landing a duplicate and uncovering a real critical issue usually comes down to how you perform reconnaissance. A lot of hunters stay on the surface. They scan the obvious assets, check the common ports and move on. But the valuable findings are often hidden in places most people ignore, like non standard ports, forgotten IP ranges and services that have been quietly running for years without attention.
In this guide, I'll walk you through a practical, multi stage approach to scanning and fuzzing that helps you expand your attack surface properly and spot opportunities others miss.
Recon Workflow ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββββββ ββββββββββββ ββββββββββββ
β CHAOS βββββΆβ HTTPX βββββΆβ NAABU βββββΆβ NMAP + PARSERS βββββΆβ NUCLEI βββββΆβ FFUF β
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββββββ ββββββββββββ ββββββββββββ
β β β β β β
β β β β β β
[Gather] [Live Check] [Port Scan] [Deep Scan] [Vuln Scan] [Fuzzing]
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 1: Subdomain Discovery
β
β βββ Tool: Chaos
β β βββ Certificate transparency logs
β β βββ DNS PTR records
β β βββ TLS scans
β β
β βββ Broaden external attack surface
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 2: Alive Hosts and Deduplication
β
β βββ Probing with HTTPX
β β βββ Identify live assets
β β βββ Collect IP addresses
β β
β βββ IP Deduplication
β β
β βββ CDN/WAF Filtering
β βββ Avoid Cloudflare/Akamai/Fastly
β βββ Verify origin via page titles
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 3: Port Scanning
β
β βββ Tool: Naabu
β βββ Top 100 ports
β βββ Verify open status
β βββ Create baseline for scanning
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 4: Service Detection and Parsing
β
β βββ Advanced Nmap Scan
β β βββ Software identification
β β βββ Version fingerprinting
β β βββ NSE vulnerability scripts
β β
β βββ Nmap Parsing
β βββ Convert XML to HTML
β βββ Host exposure summary
β βββ Identify low hanging fruit
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 5: Automated Vulnerability Scanning
β
β βββ Tool: Nuclei
β βββ Known CVE templates
β βββ Default credentials
β βββ Misconfigurations
β βββ Exposed tokens
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 6: Content Discovery and Fuzzing
β
β βββ Tool: FFUF
β β βββ Directory brute forcing
β β βββ Hidden backup files
β β βββ Sensitive paths (/admin, .env)
β β
β βββ Fuzzing Pro-Tips
β βββ Analyze response size/word count
β βββ Include non-standard ports
β βββ Investigate 403 Forbidden
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Phase 1: Subdomain Discovery with Chaos
The first step in any reconnaissance process is discovering as many subdomains as possible. Instead of depending only on active brute-forcing or managing multiple API keys from different providers, we start with Chaos a tool that collects subdomains from certificate transparency logs, DNS PTR records and TLS scans, then stores them in a continuously updated database.
This lets you gather a large set of known assets before you even send a single probe to the target. chaos -d redbull.com -o redbull.txt
After running Chaos, we end up with a raw list of roughly 3,000 subdomains. That immediately gives us a much broader view of the target's external attack surface
Phase 2: Identifying Alive Hosts and Deduplication
A long list of subdomains means nothing if most of them don't resolve. Before moving forward, we have to separate the real, live assets from the dead entries. This step eliminates noise and lets you focus only on what actually respond and are worth testing.
Probing with HTTPX:
Next, we run the list through httpx to check which subdomains are actually alive. At the same time, we collect their corresponding IP addresses.
IP Deduplication:
Many subdomains resolve to the same backend server or load balancer. To avoid wasting time, we sort the IPs and remove duplicates so we only scan unique hosts. httpx-toolkit -l redbull.txt -ip -silent | sed -nE 's/.*\[([0-9.]+)\].*/\1/p' | sort -u >ip.txt
After cleaning the data, we're left with 379 unique IPs, a far more manageable and efficient list to work with.
πNote: Before you scan or fuzz anything, check if the IP belongs to Cloudflare, Akamai or Fastly. Most of your collected IPs will. Scanning them is pointless you're hitting their edge servers, not the real origin. You'll also get your IP banned fast. so always use httpx with the -title flag to quickly see what the IP resolves to. If the title matches the actual website, it's likely the origin IP. If it shows generic CDN/WAF pages, it's not worth targeting.
Phase 3: Port Scanning with Naabu
Scanning every port across thousands of subdomains would be slow and noisy. Instead, running Naabu against the unique IPs lets you identify verified open ports quickly and efficiently. naabu -l ip.txt -top-ports 100 -rate 1500 -verify -silent -o naabu.txt
this gives us a clean, verified list of open ports, so we are not wasting effort on filtered or closed services. Save this output, it becomes the baseline for deeper scanning.
Phase 4: Advanced Service Detection & Nmap Parsing
Now that we have a clean list of IPs and open ports, the next step is to understand what is actually running behind them.
Using a custom automation script, we pass the Naabu results into a more in-depth Nmap scan that performs service detection, version fingerprinting, and NSE vulnerability script audits:
scripts/naabutonmap.py at main Β· coffinxp/scripts
Contribute to coffinxp/scripts development by creating an account on GitHub.
github.com
python naabutonmap.py -i naabu.txt
Service Detection: Identifying what software is running (e.g., Apache, Nginx, Redis).
Version Detection: Finding specific software versions to look for known exploits.
Vulnerability Checks: Running script-level audits.
Analyzing the Results
The scan produces several XML files, which are not exactly easy to review in raw form. To make the data readable, we run it through an Nmap parser. This converts the detailed XML output into a clean, structured HTML report that is much easier to analyze. # Parse XML output into a readable HTML report
./nmap-parse-output /nmap-out/20260121_153728/nmap_out.xml html > scan.html
+--------------+-----------------------------------------------------------+
| Feature | Benefit |
+--------------+-----------------------------------------------------------+
| Host Summary | Quickly see which IPs have the most exposure. |
| Version Info | Identify "low hanging fruit" like outdated software. |
| Visual Layout| Easily spot high-value attack surfaces for manual testing.|
+--------------+-----------------------------------------------------------+
GitHub - ernw/nmap-parse-output: Converts/manipulates/extracts data from a Nmap scan output.
Converts/manipulates/extracts data from a Nmap scan output. - ernw/nmap-parse-output
github.com
Phase 5: Automated Vulnerability Scanning with Nuclei
With a confirmed list of live IPs and open ports, we move into targeted vulnerability hunting. Nuclei works with thousands of templates covering known CVEs, default credentials, misconfigurations and exposed tokens. # Scan live IPs for known CVEs
cat ip.txt | nuclei -tags cve -bs 200
# Scan all discovered ports (Naabu output)
cat naabu.txt | nuclei -tags cve -bs 200
By feeding it the Naabu output directly, we make sure every discovered port gets tested, not just the usual web ports like 80 and 443. This is important because many applications, admin panels, APIs or sensitive files and directories often hosted on non-standard ports, which are easy to miss if you only scan typical web services.
Phase 6: Content Discovery and Fuzzing with FFUF
The final stage of reconnaissance is directory brute forcing or fuzzing, with ffuf.
Using a targeted wordlist, we look for hidden files, backup archives such as .bak or .zip and sensitive paths like /admin or exposed configuration files such as .env. This step often uncovers overlooked endpoints that can lead to serious findings. ffuf -w ip.txt:SUB -w payloads/backup_files_only.txt:FILE -u https://SUB/FILE -mc 200 -rate 50 -fs 0 -c
ffuf -w naabu.txt:SUB -w payloads/backup_files_only.txt:FILE -u https://SUB/FILE -mc 200 -rate 50 -fs 0 -c
payloads/backup_files_only.txt at main Β· coffinxp/payloads
Contribute to coffinxp/payloads development by creating an account on GitHub.
github.com
Pro-Tips for Fuzzing:
Analyze the Responses: Don't just look at status codes. Pay attention to Response Size and Word Count. Sometimes a 200 OK is just a custom error page that happens to match the size of a real page.
Include Non-Standard Ports: Use the Naabu port list within ffuf. Vulnerabilities are frequently found on internal services exposed on unusual ports.
Don't Ignore 403s: A 403 Forbidden response often means you've found something sensitive. These endpoints are prime candidates for 403 bypass techniques.
You can also watch this video where I showed the complete practicle of this method:
Conclusion
This structured workflow turns random scanning into focused, high-value reconnaissance. By validating assets, mapping real services and then applying vulnerability and content discovery, you eliminate noise and gain a clear, prioritized attack surface. It saves time, scales well and puts you in a strong position for effective manual testing and real bug discoveries.
Disclaimer
The content provided in this article is for educational and informational purposes only. Always ensure you have proper authorization before conducting security assessments. Use this information responsibly.
#bug-bounty #penetration-testing #technology #hacking #cybersecurity
Reporting a Problem
Sometimes we have problems displaying some Medium posts.
If you have a problem that some images aren't loading - try using VPN. Probably you have problem with
access to Medium CDN (or fucking Cloudflare's bot detection algorithms are blocking you).