Building the Site Map
What the Site Map Represents
The Burp site map is a hierarchical representation of the target application's structure. It shows you every URL Burp has seen — whether from proxy traffic, crawling, or manual entry — organized by host, path, and parameter. Think of it as the application's attack surface laid out visually.
How Burp Populates the Site Map
Burp builds the site map from two sources:
Proxy traffic — Every request that flows through Burp Proxy is automatically added to the site map. As you browse the application, the map grows in real time.
Crawling — Burp's crawler follows links discovered in responses, recursively discovering new paths and parameters. You start a crawl by right-clicking a host in the site map and selecting Crawl.
Site Map Structure
The site map is organized as a tree:
Target
├── https://target.example.com
│ ├── /
│ ├── /login
│ ├── /api
│ │ ├── /api/users
│ │ ├── /api/documents
│ │ └── /api/documents/{id}
│ └── /admin
│ └── /admin/dashboard
Each node shows the HTTP method, URL, and parameters. Clicking a node displays the full request and response in the bottom panel.
Configuring the Crawl
When you start a crawl, Burp presents options:
- Crawl strategy — "Deep" follows all links recursively; "Breadth-first" explores level by level
- Maximum crawl depth — Limits how many link hops the crawler follows (default is unlimited, but large apps may need limits)
- Number of threads — Controls crawl speed
- Scope — Only crawl URLs within the defined scope
For large applications, start with a focused crawl on a specific branch (e.g., /api) rather than the entire site. This keeps the crawl manageable and the results relevant.
Analyzing the Site Map
Once populated, the site map reveals:
- All discovered endpoints — Including ones not linked from the main navigation
- Parameter names — Every parameter Burp has observed, which you can fuzz in Intruder
- Content types — Which endpoints return HTML, JSON, XML, etc.
- Status codes — Which endpoints return 200, 302, 403, 500, etc.
Filter the site map by status code, MIME type, or annotation to focus on interesting areas. For example, filter for 403 responses to find endpoints that exist but require different authorization.
Passive Scanning
What Passive Scanning Does
Passive scanning analyzes requests and responses that already exist in Burp — it does not send any additional requests to the server. This makes it safe to run against production systems and invisible to intrusion detection systems.
What Passive Scanning Detects
Burp's passive scanner checks for:
- Missing security headers — No
Content-Security-Policy,X-Frame-Options,Strict-Transport-Security, etc. - Cookie issues — Session cookies without
HttpOnly,Secure, orSameSiteattributes - Information disclosure — Error messages revealing stack traces, server versions, or internal paths
- Mixed content — HTTPS pages loading HTTP resources
- Email addresses — Exposed in page content
- Comments — HTML comments containing sensitive information
Running a Passive Scan
Passive scanning runs automatically on all proxied traffic. You do not need to start it. However, you can control what it checks:
- Go to Scanner > Options (or Dashboard > Passive scan in newer versions)
- Enable or disable specific check categories
- Set the scan scope
To passive-scan a specific request or response, right-click it and select Do passive scan.
Reviewing Passive Scan Results
Passive scan findings appear in the Issues activity (Scanner tab) or as annotations in the site map. Each finding includes:
- Severity — High, Medium, Low, Information
- Confidence — Certain, Firm, Tentative
- Description — What was found and why it matters
- Remediation — How to fix the issue
Practical Example: Finding Missing Headers
You browse through the application with Burp proxying traffic. The passive scanner flags that no responses include X-Frame-Options or Content-Security-Policy. This means the application may be vulnerable to clickjacking. You verify by attempting to embed the site in an iframe — if it loads, clickjacking is confirmed.
Passive vs Active Scanning
| Aspect | Passive | Active |
|---|---|---|
| Sends requests | No | Yes |
| Detectable by IDS | No | Yes |
| Safe for production | Yes | Risky |
| Finds | Configuration issues, information disclosure | SQLi, XSS, command injection |
| Speed | Instant (analyzes existing traffic) | Slower (sends many requests) |
Passive scanning is always your first pass. Active scanning comes later, against staging environments, when you are ready to probe for exploitable vulnerabilities.
Site Map Analysis for Hidden Endpoints
Finding What Should Not Exist
The most valuable use of the site map is comparing what you discovered against what the application is supposed to do. This comparison exposes:
- Debug endpoints —
/debug,/test,/dev,/consoleleft accessible in production - Administrative panels —
/admin,/manage,/backendnot linked from the main UI - API versions —
/api/v1,/api/v2,/api/internalwith different behavior - Backup files —
/index.php.bak,/config.old,/database.sql - Documentation —
/swagger,/api-docs,/graphqlwith introspection enabled
Technique: Compare Against Declared Functionality
- List declared features — From the application's marketing page, documentation, or user guide, list all known features and their expected URLs.
- Export the site map — Right-click the site map > Save all items to a file.
- Diff the lists — Any URL in the site map that is not in the declared feature list is a candidate for investigation.
Technique: Filter by Anomaly
Use the site map filter to find anomalies:
- Filter by 403/401 — Endpoints that exist but deny access; try different HTTP methods or authentication
- Filter by 500 — Endpoints that error; may reveal unhandled exceptions or debug information
- Filter by content type — JSON endpoints in an HTML application may be undocumented APIs
- Filter by parameter — Endpoints with
debug,admin,test, orinternalparameters
Practical Example: Discovering a Debug Endpoint
You are testing a web application. The site map shows a request to /api/debug/health that returns a 200 response with detailed system information (disk space, memory, database status). This endpoint is not linked from any page and was discovered by the crawler following a JavaScript file reference. The information disclosed helps you understand the server environment and plan further attacks.
Annotating the Site Map
As you analyze, annotate items in the site map:
- Right-click an item > Add annotation
- Note why the endpoint is interesting, what you tested, and what you found
- Annotations persist in the Burp project file and appear in reports
This creates a record of your analysis that you can reference later or share with team members.
Practice Problems
You are testing target.example.com. Describe how you would use Burp's site map to discover endpoints not linked from the main navigation, and what you would look for.
Solution
1. Configure Burp Proxy and browse the main application pages to populate the site map. 2. Right-click the target host in Target > Site map and select 'Crawl' to recursively discover linked content. 3. Review the site map for paths not visible in the main UI: /admin, /debug, /api, /swagger, /backup. 4. Filter by status code 403 to find endpoints that exist but deny access. 5. Filter by content type JSON to find API endpoints. 6. Annotate interesting findings for further testing. After browsing an application with Burp, the passive scanner flags missing security headers. What specific headers would you check for, and what vulnerability does each missing header indicate?
Solution
Check for: 1. Content-Security-Policy (missing = XSS risk), 2. X-Frame-Options (missing = clickjacking risk), 3. Strict-Transport-Security (missing = SSL stripping risk), 4. X-Content-Type-Options (missing = MIME sniffing risk), 5. Referrer-Policy (missing = information leakage via referrer). Verify each finding by attempting the attack (e.g., embedding in iframe for clickjacking). Quiz
1. What are the two ways Burp populates the site map?
2. What is the key advantage of passive scanning over active scanning?
3. You filter the site map for 403 responses. What does this reveal?
4. What is the most effective way to find debug or administrative endpoints not linked from the main application?
Flashcards
Question
What are the two sources that populate Burp's site map?
Click to reveal answer
Answer
Proxy traffic (requests flowing through Burp Proxy) and crawling (following links discovered in responses).
Question
What does passive scanning analyze?
Click to reveal answer
Answer
Existing requests and responses in Burp's proxy history. It does not send any additional requests to the server.
Question
What types of issues does passive scanning detect?
Click to reveal answer
Answer
Missing security headers, cookie issues (missing HttpOnly/Secure/SameSite), information disclosure in error messages, mixed content, and exposed email addresses.
Question
How do you find hidden endpoints using the site map?
Click to reveal answer
Answer
Crawl the application to discover all linked content, then filter the site map by status code (403, 500), content type (JSON), or path patterns (/admin, /debug, /api).
Question
What is the difference between passive and active scanning?
Click to reveal answer
Answer
Passive scanning analyzes existing traffic without sending requests (safe, undetectable). Active scanning sends additional requests to probe for vulnerabilities (can find SQLi, XSS, but is detectable and risky for production).
Revision Notes
Key Takeaways
- 1. Site map is built from proxy traffic and crawling — browse and crawl to populate it
- 2. Passive scanning analyzes existing traffic without sending requests, making it safe for production
- 3. Filter the site map by status code and content type to find hidden endpoints
- 4. Compare discovered endpoints against declared functionality to find debug/admin panels
- 5. Annotate interesting findings in the site map for reporting and collaboration
Interview Tips
- • Describe how you used the site map to discover an undocumented API endpoint during a test
- • Explain the difference between passive and active scanning and when you would use each
- • Discuss how you filter and analyze a large site map to focus on high-value targets
- • Mention specific passive scan findings (missing headers, cookie issues) and how you verified them
Cheat Sheet
Target Site Map and Passive Scanning Cheat Sheet
Phase: Web Testing with Burp Suite | Level: intermediate
Site Map:
- Populated by: proxy traffic + crawling
- Structure: hierarchical tree by host, path, parameter
- Filter by: status code, MIME type, annotation
Crawl Configuration:
- Right-click host > Crawl
- Set max depth, threads, scope
- Start with focused branches for large apps
Passive Scanning:
- Runs automatically on proxied traffic
- No additional requests sent (safe for production)
- Detects: missing headers, cookie issues, info disclosure
- Review in Scanner > Issues
Finding Hidden Endpoints:
- Crawl to discover all linked content
- Filter by 403/401 (authorization issues)
- Filter by 500 (unhandled exceptions)
- Filter by JSON content type (undocumented APIs)
- Look for /admin, /debug, /api, /swagger, /backup
Tags: burp-suite, recon
Continue Learning
Before You Start
- No prerequisites listed.