Skip to content

fix(recon): always include the seed host in the HTTP probe list - #178

Open
themiguelamador wants to merge 1 commit into
awarexone:mainfrom
themiguelamador:fix/recon-seed-host-probe
Open

themiguelamador wants to merge 1 commit into
awarexone:mainfrom
themiguelamador:fix/recon-seed-host-probe

Conversation

@themiguelamador

Copy link
Copy Markdown

Problem

For domain-type targets, Phase 1 builds the HTTP probe list (subdomains/all.txt) purely from passive subdomain enumeration output (subfinder/amass/crt.sh/wayback). When that returns nothing, Phase 2 skips HTTP probing entirely — including the seed host itself — and the summary reports 0 subdomains / 0 live hosts / 0 URLs for a host that is live.

This hits every case where passive enum is empty:

  • deep hostnames (4+ labels, e.g. tenant.dast.example.com) — wordlists don't contain them
  • DNS-only zones, internal/non-public names
  • newly created hostnames with no CT/wayback history yet

The ip, local, list and cidr branches all seed the probe list with the target itself; only the domain branch doesn't.

Fix

Mirror the ip/local seeding: after the enum merge into all.txt, append "${TARGET}${TARGET_PORT:+:$TARGET_PORT}" and sort -u — so the seed host is always probed by httpx in Phase 2. 8 lines, no behavior change for targets where enum already returns results (dedup via sort -u).

Verification

Against a live 4-label host (multi-tenant web app on Fly.io), same --quick run before/after:

before after
probe list 0 hosts 1 host (seed included)
live hosts 0 1
URLs collected 0 1240
JS files / endpoints 0 339 / 17
API endpoints 0 15
parameterized URLs 0 19

Also confirmed the AI surface analysis on the unpatched run independently flags the empty probe list (resolved_hosts: 0 including the seed) as a pipeline bug rather than a clean target.

Deep (4+-level) hostnames, DNS-only zones and internal names return
nothing from passive subdomain enum, so the domain branch produced an
empty all.txt and Phase 2 skipped HTTP probing entirely. Mirrors the
ip/local seeding. Verified against tenant.dast.complear.com.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant