Updated Jul 14, 2026

Fuzzing

Recover hidden IIS paths from short-name leaks

Enumerate IIS 8.3 short filenames to recover hidden paths.

Agent

overview

What shortscan does

shortscan reconstructs hidden IIS file and directory names by probing 8.3 short-name responses. It walks a character set, recurses into subdirs, and can expand fragments with a --wordlist rainbow table.

Run it against Microsoft IIS hosts when you suspect tilde short-name disclosure. --isvuln stops after the leak check; raise --patience or enable --stabilise on inconsistent servers.

It is IIS-specific. For general path brute force, feed recovered fragments into a content-discovery fuzzer rather than treating shortscan as a broad directory scanner.

source github.com/bitquark/shortscan

use cases

Where shortscan fits

Recover hidden filenames on IIS

Enumerate 8.3 short names to reconstruct files and directories the server exposes through legacy naming, including backups and config files.

Confirm the short-name leak fast

Run with --isvuln to bail the moment shortscan decides whether the service leaks short names, when you only need a yes or no on a host.

Seed content discovery

Feed recovered short-name fragments into a directory-fuzzing stage to expand them into full paths worth requesting.

Tune against unstable servers

Raise --patience and enable --stabilise so the tool still produces coherent autocomplete results when a server responds inconsistently under load.

reference

shortscan inputs and flags

15 inputs
NameTypeFlagDescription
urlsFILE·File of URLs to scan.
outputSTRING--outputOutput format: human (readable) or json (default human).
is-vulnBOOLEAN--isvulnBail after determining whether the service is vulnerable.
wordlistFILE--wordlistCombined wordlist and rainbow table generated with shortutil.
headerSTRING--headerHeader to send with each request (repeat for multiple headers).
concurrencySTRING--concurrencyNumber of requests to make at once (default 20).
patienceSTRING--patiencePatience level when determining vulnerability (0 patient, 1 very patient).
autocompleteSTRING--autocompleteAutocomplete detection mode: auto, method, status, distance, or none.

Showing key inputs. shortscan exposes 15 inputs in total.

Full flag reference (15 inputs)
NameTypeFlagDescription
urlsFILE·urls to scan
headerSTRING--headerheader to send with each request (use multiple times for multiple headers)
outputSTRING--outputoutput format (human = human readable; json = JSON) [default: human]
is-vulnBOOLEAN--isvulnbail after determining whether the service is vulnerable [default: false]
timeoutSTRING--timeoutper-request timeout in seconds [default: 10]
full-urlBOOLEAN--fullurldisplay the full URL for confirmed files rather than just the filename [default: false]
patienceSTRING--patiencepatience level when determining vulnerability (0 = patient; 1 = very patient) [default: 0]
wordlistFILE--wordlistcombined wordlist + rainbow table generated with shortutil
stabiliseBOOLEAN--stabiliseattempt to get coherent autocomplete results from an unstable server (generates more requests) [default: false]
verbositySTRING--verbosityhow much noise to make (0 = quiet; 1 = debug; 2 = trace) [default: 0]
charactersSTRING--charactersfilename characters to enumerate [default: JFKGOTMYVHSPCANDXLRWEBQUIZ8549176320-_()&'!#$%@^{}~]
no-recurseBOOLEAN--norecursedon't detect and recurse into subdirectories (disabled when autocomplete is disabled) [default: false]
concurrencySTRING--concurrencynumber of requests to make at once [default: 20]
header-fileFILE--header-fileheaders to send with each request (one per line)
autocompleteSTRING--autocompleteautocomplete detection mode (auto = autoselect; method = HTTP method magic; status = HTTP status; distance = Levenshtein distance; none = disable) [default: auto]

example

Run shortscan

shortscan · command
# confirm the host leaks 8.3 names, then enumerate with a wordlistshortscan --isvuln http://example.com/shortscan --wordlist resources/rainbow.txt --output json --fullurl --concurrency 40 http://example.com/
sample output
Shortscan v0.9.1 · an IIS short filename enumeration tool by bitquark━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━URL:                   http://example.com/Running:               Microsoft-IIS/10.0Vulnerable:            Yes!━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ADMIN~1.ASP    File   Admin (Admin.asp, Admin.aspx)BACKUP~1.ZIP   File   Backup (Backup.zip)CONFIG~1.BAK   File   Config (Config.bak)UPLOAD~1       Dir    Uploads

guidance

Choosing shortscan

Use shortscan against Microsoft IIS targets to recover hidden file and directory names through 8.3 short-name leakage. For general directory brute force, pair recovered fragments with a content-discovery fuzzer.

snallygaster

Looks for exposed files on any web server. Broader server-agnostic checks, not IIS short-name specific.

smuggler

Tests for request smuggling rather than filename leakage. A different class of HTTP proxy bug.

shuffledns

Subdomain resolution rather than path enumeration. Runs earlier in a recon pipeline.

faq

shortscan questions

It targets one specific IIS weakness, the 8.3 short-name disclosure, rather than running a broad vulnerability scan. Run it with --isvuln for a fast yes or no on whether a host leaks short names, then let it enumerate the names in full.

Run shortscan yourself

A file of IIS URLs feeds shortscan, which enumerates 8.3 short names and writes the recovered filenames as a queryable output.

Facts on this page come from the live Trickest tool library.