🔎 Basic scans

This page contains small practical examples for everyday OpenDoor usage.


Directory discovery

opendoor --host https://example.com

Equivalent explicit mode:

opendoor --host https://example.com --scan directories

Use this when you want to discover exposed paths, files, panels, backups, and restricted resources.


Same-origin crawl

opendoor --host https://example.com --crawl

Use --crawl when you want OpenDoor to add unique same-origin URLs discovered from already scanned HTML responses. It is one-hop, directory-scan only, reports crawled URLs through normal result buckets.


Subdomain discovery

opendoor --host example.com --scan subdomains

Use a domain name instead of a full URL. --crawl is intentionally not compatible with subdomain scans.


Use a custom wordlist

Local file:

opendoor --host https://example.com --wordlist ./wordlists/paths.txt

Remote HTTP(S) file:

opendoor --host https://example.com --wordlist https://example.com/wordlists/paths.txt

Use custom wordlists when the target stack or application naming patterns are known. Local and remote custom wordlists are marked as external; bundled OpenDoor dictionaries are marked as internal.

Remote wordlists are downloaded into the managed per-scan temporary workspace before scanning. The same counters, filters, extension handling, and scan progress are used after download. Remote files larger than 500 MB are rejected; download very large wordlists separately and pass the local file path.


Filter by extensions

opendoor --host https://example.com --extensions php,json,txt

This keeps only wordlist entries that already end with the selected extensions.

Short form:

opendoor --host https://example.com -e php,json,txt

Ignore extensions

opendoor --host https://example.com --ignore-extensions aspx,jsp

Short form:

opendoor --host https://example.com -i aspx,jsp

Use GET instead of HEAD

opendoor --host https://example.com --method GET

Use GET when you need body-based analysis, text filters, regex filters, fingerprinting context, or body-oriented sniffers.


Add headers

opendoor --host https://example.com --header "X-Test: 1"

Multiple headers can be passed by repeating --header:

opendoor \
  --host https://example.com \
  --header "X-Test: 1" \
  --header "Authorization: Bearer TOKEN"

Do not commit real tokens.


Add cookies

opendoor --host https://example.com --cookie "sid=abc123"

Cookies are useful for authorized scans of authenticated areas.

Do not commit real session cookies.


Save reports

opendoor --host https://example.com --reports std,json,html --reports-dir ./reports

Use machine-readable formats for automation:

opendoor --host https://example.com --reports json,sqlite

Low-noise scan

opendoor \
  --host https://example.com \
  --method GET \
  --auto-calibrate \
  --include-status 200-299,301,302,403 \
  --exclude-status 404,429,500-599 \
  --exclude-size-range 0-256 \
  --sniff skipempty,collation,indexof,file \
  --reports std,json

This is a good starting point for modern web applications with custom error pages or wildcard routing.