RedTeam Nexus Labs
Module 05 · Lesson 02 // Web Enumeration

directories

Web Enumeration · CTF

Freereading · 10 min
On this page
LESSON

Overview

Spidering the visible site only finds routes the application links to. To discover the paths nobody linked — backup folders, admin areas, upload directories, forgotten files — you need directory and content discovery: systematically requesting likely paths and seeing which ones exist. This lesson explains how content discovery works, how wordlists drive it, and how to read the results without wandering out of scope in an authorized target.

Learning objectives

  • Explain how directory and content discovery finds unlinked paths.
  • Describe how a wordlist and HTTP status codes are used to confirm what exists.
  • Interpret discovery results responsibly within an authorized CTF target.

Core concept

Content discovery (often called directory brute-forcing) is the technique of guessing paths against a target and using the server's responses to learn which ones are real. Instead of clicking links, you take a wordlist — a list of common directory and file names such as admin, backup, config, uploads, .git, robots.txt — and request each one as a path (for example GET /admin, GET /backup). The server's response tells you whether that path exists and what it does.

The concept rests on a simple truth: web servers respond differently to paths that exist versus paths that do not. A defined route or a real file typically returns 200 OK (or 403/401 if it exists but is protected); a nonexistent path usually returns 404 Not Found. By comparing responses across many candidate paths, you separate the real content from the noise.

How it works

  • Choose a wordlist. Discovery is only as good as its wordlist. General-purpose lists contain thousands of common names; targeted lists focus on a technology (for example, names typical of a particular framework). Bigger is not always better — a focused list is faster and quieter.
  • Request each candidate. A discovery tool sends one request per word, building paths from the base URL. Common tools used in labs include command-line fuzzers that take a wordlist and a target and report the status of each path.
  • Filter by response. You keep the interesting responses. 200 means the content exists; 301/302 may reveal a directory that redirects to a trailing-slash form; 403 means it exists but is forbidden (still a finding); 401 means authentication is required. You typically filter out the 404s and any "soft 404" page the app returns for everything.
  • Watch response size and content. Some servers return 200 for every path with a generic "not found" page. Comparing response length helps you spot the pages that are genuinely different.
  • Recurse carefully. When you find a directory, you can run discovery inside it (for example, discover under /admin/). Do this only within the authorized target and at a reasonable request rate so you do not overload a shared challenge server.

Practical example

In an authorized CTF web target, spidering found only /, /login, and /about. You run a content-discovery tool with a common wordlist against the base URL. Most requests return 404, but three stand out: /backup returns 301 redirecting to /backup/, /admin returns 403 Forbidden, and /config.old returns 200 OK with a response noticeably larger than the generic page. You open /config.old and find it is a leftover configuration file — exactly the kind of unlinked artifact challenge authors plant. None of these were reachable by clicking; discovery surfaced them by testing likely names and reading status codes and sizes.

Cybersecurity relevance

Content discovery reflects a standard step in authorized web assessments. Real applications routinely leak through forgotten paths: source-control folders left deployed, database backups in a web-readable directory, staging admin panels, and old file versions. Testers enumerate these to report them; defenders remove them and ensure sensitive paths are not web-accessible. Learning to drive discovery with an appropriate wordlist and to interpret status codes and response sizes builds the judgment to find real exposure quickly — and to recognize a "soft 404" that would otherwise flood you with false positives.

[!WARNING] Directory discovery sends many automated requests. Run it only against targets you are explicitly authorized to test (your CTF's provided systems), and keep the request rate reasonable so you do not disrupt a shared challenge server. Pointing a fuzzer at systems you do not own is illegal.

Common mistakes

  • Using a giant wordlist blindly, generating noise and load instead of starting focused.
  • Trusting status codes alone and missing a server that returns 200 for everything — always compare response size.
  • Ignoring 403/401 results, which confirm a path exists and is worth further attention.
  • Fuzzing out of scope or too aggressively, risking disruption or violating the rules of engagement.

Key takeaways

  • Content discovery guesses paths from a wordlist and uses server responses to find unlinked directories and files.
  • Interpret results by status code (200, 301/302, 403/401) and by response size to filter out "soft 404" noise.
  • A focused wordlist and a reasonable request rate are more effective and safer than a massive, aggressive scan.
  • Only run discovery against authorized targets, and treat forbidden paths as findings, not dead ends.

Check your understanding

  • Why is comparing response size important when a server returns 200 for paths that do not really exist?
  • What should you consider before running a large, fast directory scan against a shared CTF server?
FINISH THIS LESSON

Sign in to save your progress.