Course / 08 Tools / Lesson 04 of 06

Web recon

Estimated time: 14 min reading · 12 min activity

Before choosing a test, learn what the permitted evidence actually contains. Reconnaissance means gathering information. Here the entire permitted site is a small supplied corpus: its page, a robots.txt file and the note linked from the page. Reading those files is enough; there is no live target to discover.

A crawler is a program that follows web resources automatically. A robots.txt file asks crawlers which paths to avoid. The Robots Exclusion Protocol explicitly separates those requests from access authorization. A published path can guide an observation, but permission must come from the owner’s scope, not from that path being visible.

Before you begin

Estimated time
14 min reading, 12 min activity. Setup and optional practice may take longer.
Where you work
Use the printed examples in any desktop or mobile browser, with paper or a text editor. No installation, account, proxy, certificate or scan is required. Ubuntu is sufficient for later practice; optional setup time is outside these estimates.
Without a lab
All evidence needed for the activity appears on this page. Copy it into notes if downloads are unavailable. Read the labeled model and predict each result; a paper trace practises the reasoning while tool operation waits for a lab. Reading needs no JavaScript. Answer checking needs JavaScript and a secure context; saving progress also needs usable browser storage.

After this lesson you can:

  • Find the filename named by the page comment and by the link.
  • Say what a robots.txt Disallow line asks of a crawler.
  • Leave a path unrequested when the grant does not name it.

01Example

Original crawler-rule example. Read the syntax without requesting the named path.

User-agent: *
Disallow: /example/
User-agent selects crawlers; * means all in this group.
Disallow asks those crawlers to avoid the matching path.
The file supplies neither a tester’s identity nor a test grant.

02A clue is a filename you can point to

An HTML comment is text between <!-- and --> that the browser normally does not display as page content. A link’s href gives the address it offers. On this page, both the comment and link name notes.txt. Copy the exact filename and its source line so another reader can find your evidence.

The supplied robots.txt mentions /draft/, but no draft file is supplied and the scope does not permit guessing paths. Treat the name as a clue in the file, not confirmation that a resource exists. Even a readable note is not automatically a vulnerability: a finding needs a policy or security boundary and evidence that it failed.

Extract documented clues from an owned site while keeping crawler rules separate from test permission.Model. A teaching model drawn by hand. It shows the idea, not real tool output.

Read the full explanation below.

Path request

User-agent: *
Disallow: /example/
User-agent selects crawlers; * means all in this group.
Disallow asks those crawlers to avoid the matching path.
The file supplies neither a tester’s identity nor a test grant.
Crawler groupPath request
What this part means

The star selects all crawlers in this group.

It identifies no tester.

The star selects all crawlers in this group. It identifies no tester.

Follow the explanation

  1. The star selects all crawlers in this group. It identifies no tester.
  2. Disallow asks those crawlers to avoid /example/. A robots file supplies no test grant.
Read every state and value

1. The star selects all crawlers in this group. It identifies no tester.

Selected parts
Crawler group
Explanation
group

2. Disallow asks those crawlers to avoid /example/. A robots file supplies no test grant.

Selected parts
Path request
Explanation
disallow
robots.txt is neither access control nor a tester's authorization; no path is requested.

03Read the three owned files

Read the three printed files as the whole corpus. You do not need to host them, follow external links or guess additional addresses.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Owned desk</title>
</head>
<body>
  <h1>Owned desk</h1>
  <p>Read the files in this folder. Do not guess other paths.</p>
  <!-- spare list: notes.txt -->
  <p><a href="notes.txt">Spare list</a></p>
</body>
</html>

Download the owned desk page

User-agent: *
Disallow: /draft/

Download robots.txt

The spare list is this file.
A filename is a clue.
It is not a grant, and it is not a finding.
There is no draft file in this folder.

Download the linked note

  1. Find notes.txt in the page’s comment and its link. Write both locations as supporting evidence for the filename.
  2. Read the linked note. Record that the course published it intentionally and that a filename alone establishes no weakness.
  3. Copy the Disallow path /draft/ into a separate crawler-rule line. Leave existence and access policy unconfirmed because neither is established by the supplied record.
  4. Stop after those three observations. Do not request /draft/ or expand into directory guessing.

04Optional challenge

In about ten optional minutes, imagine that a later copy of the comment says old-notes.txt while the visible link still names notes.txt. Write the disagreement and identify which source supports each name. Your rubric is faithful evidence and uncertainty, with no claim that either file is vulnerable.

05Fresh cases for the checks

Use these fictional cases for the checks below. They have different inputs from the worked examples. Read them here or make notes; no installation or external service is needed.

Recon case A: supplied saved files onlyOwned fixture. An original file made for this course. Follow the activity's instructions in your own lab.

index.html excerpt:
<!-- older draft: plan-v1.txt -->
<a href="plan-v2.txt">Current plan</a>
robots.txt excerpt:
User-agent: *
Disallow: /archive/
Grant: read the supplied index.html, robots.txt and plan-v2.txt text only.
No path is to be requested. plan-v1.txt is not supplied.

Recon case B: independent source limitOwned fixture. An original file made for this course. Follow the activity's instructions in your own lab.

An authored page contains <!-- notes in shelf.txt -->.
No shelf.txt contents or network response are supplied.

06Explain your evidence

Optional written self-check: explain one decision using the supplied case. No tool run is required.

Check your explanation: cite the exact source of each clue; distinguish a crawler request from authorization; keep missing resource contents and existence unconfirmed.

07Common mistakes

If a path is absent from the supplied files, leave it unknown. A guessed URL would introduce a new action outside this exercise.

If you label every linked note a vulnerability, name the missing security rule first. Intentionally published content may be ordinary functionality.

If a comment and a link disagree, record the difference; do not silently choose whichever supports a stronger claim.

References