Target Site Map
The central site map aggregates all of the
information that Burp has gathered about applications. You can
filter and
annotate this information to help manage it, and also use the site map
to drive your testing workflow.
Target Information
The site map displays target information in tree and table form, and also
lets you view full requests and responses for individual items where
available.
The tree view contains a hierarchical representation of content, with
URLs broken down into domains, directories, files, and parameterized
requests. You can expand interesting branches to see further detail. If you
select one or more parts of the tree, all the selected items and items in
child branches are shown in the table view.
The table view shows key details about each item (URL, HTTP status code,
page title, etc.). You can sort the table according to any column (click the
column header to cycle through ascending sort, descending sort, and
unsorted). If you select an item in the table, the request and response
(where available) for that item are shown in the request/response pane. This
contains an HTTP message editor
for the request and response, providing detailed analysis of each message.
The site map aggregates all of the information that Burp has gathered
about applications. This includes:
- All of the resources
that have been directly requested via the Proxy.
- Any items that have been
inferred by analyzing the responses to proxy requests (provided you have not
disabled passive spidering).
- Content discovered using the Spider or
content discovery
functions.
- Any items manually added by the user, from the output of other
tools.
Items in the site map that have been requested are shown in black. Items
that have not yet been requested are shown in gray. By default (with
passive spidering enabled) when
you begin browsing a typical application, a large amount of content will
appear in gray before you even get as far as requesting it, because Burp has
discovered links to it in the content that you have requested. You can
remove uninteresting content (for example, on other domains that are linked
to from your target application), by setting an appropriate
target scope and using the site map
display filter.
Display Filter
The site map has a display filter that can be used to hide some of its
content from view, to make it easier to analyze and work on the content you
are interested in.
The filter bar above the site map describes the current display filter.
Clicking the filter bar opens the filter options for editing. The filter can
be configured based on the following attributes:
- Request type - You can show only
in-scope items, only requested items,
only requests with parameters, or you can hide not-found items.
- MIME type - You can configure whether to show or
hide responses containing various different MIME types, such as HTML,
CSS, or images.
- Status code - You can configure whether to show or
hide responses with various HTTP status codes.
- Folders - You can optionally hide empty folders in
the tree view. This is useful to remove folders whose child items have
all been hidden by other display filter attributes.
- Search term - [Pro version]
You can filter on whether or not responses contain a specified search
term. You can configure whether the search term is a literal string or a
regular expression, and whether it is case sensitive. If you select the
"Negative search" option, then only items not matching the search term
will be shown.
- File extension - You can configure whether to show
or hide items with specified file extensions.
- Annotation - You can configure whether to show only
items with user-supplied comments or
highlights.
The content displayed within the site map is effectively a view into an underlying
database, and the display filter controls what is included in that view. If you set a filter to hide some items,
these are not deleted, only hidden, and will reappear if you unset the relevant
filter. This means you can use the filter to help you systematically examine
a complex site map to understand where different kinds of interesting content
reside.
Annotations
In the table view, you can annotate items by adding comments and
highlights. This can be useful to describe the purpose of different URLs,
and to flag up interesting items for further investigation.
You can add highlights in two ways:
- You can highlight individual items using the drop-down menu on the
left-most table column.
- You can highlight one or more selected items using the "Highlight"
item on the context menu.
You can add comments in two ways:
- You can double-click the relevant entry, within the Comment column,
to add or edit a comment in-place.
- You can comment one or more selected items using the "Add comment"
item on the context menu.
When you have annotated interesting requests, you can use column sorting
and the display filter to quickly find these items later.
Testing Workflow
As well as displaying all of the information gathered about your target,
the site map enables you to control and initiate specific attacks against
the target,
using the context menus that appear everywhere. The exact options that are
available depend on the location where the context menu was invoked, and the
type of item(s) selected. The complete list of context menu actions is as
follows:
- Add to / remove from scope - These options create
new target scope rules which add or remove
the selected item(s) from scope. The rule generated will apply to the
selected item and all child branches in the tree. A common technique
when testing an application that includes some sensitive URLs is to add
the whole application path (domain or directory) to the target scope,
and then select the sensitive items and exclude them from scope.
- Scan / Spider / Send to ... - You can send any item
to other Burp tools, to perform further attacks or analysis. The ability
to send requests between tools forms the core of Burp's
user-driven
workflow. For example, you can select
a host or folder within the tree view, and perform actions on the entire
branch of the tree, such as spidering or
scanning. Or you can select an individual
item anywhere, and send the request to other Burp tools, such as
Intruder or Repeater.
- Show response in browser - You can use this to render
the selected response in your browser, to avoid the limitations of Burp's
built-in HTML renderer. When you select this option, Burp gives you a unique
URL that you can paste into your browser (configured to use the current
instance of Burp as its proxy), to render the response. The resulting browser
request is served by Burp with the exact response that you selected (the
request is not forwarded to the original web server), and yet the response
is processed by the browser in the context of the originally requested URL.
Hence, relative links within the response will be handled properly by your
browser. As a result, your browser may make additional requests (for images,
CSS, etc.) in the course of rendering the response - these will be handled
by Burp in the usual way.
- Request in browser - You can use this to re-issue
the selected request in your browser (configured to use the current
instance of Burp as its proxy). The following sub-options are available:
- In original session - This causes Burp to issue
the request using the exact Cookie header that appeared in the
original request.
- In current browser session - This
causes Burp to issue the request using the cookies supplied by your browser. You can use this feature to facilitate testing of access controls,
by selecting requests within Burp that were generated within one user context
(e.g. an administrator), and reissuing the requests within a different user
context that you are now logged in as (e.g. an ordinary user). When you
are dealing with complex, multi-stage processes, this methodology, of manually
pasting a series of URLs from Burp into your browser, is normally a lot
easier than repeating a multi-stage process over and over, and modifying
cookies manually using the Proxy.
- Engagement tools - [Pro
version] This submenu contains various useful functions for
carrying out engagement-related tasks:
- Search - [Pro
version] You can use the
Search function to
search the selected branch(es) of the site map for items matching a
specific expression.
- Find comments / scripts - [Pro
version] You can use the
Find comments /
scripts functions to search the selected branch(es) of the site
map for comments and scripts.
- Find references - [Pro
version] You can use
the Find references function
to search all of Burp's tools for HTTP responses that link to the
selected item.
- Analyze target - [Pro
version] You can use the
Target Analyzer
function to analyze the selected branch(es) of the site map and
tell you how many static and dynamic URLs it contains, and how many
parameters each URL takes.
- Discover content - [Pro
version] You can use
the Discover content function
to discover content and functionality that is not linked from visible content
which you can browse to or spider.
- Schedule task - [Pro
version] You can use
the Schedule task function to
create tasks that will run automatically at defined times and intervals.
- Generate CSRF PoC - [Pro
version] You can use the Generate CSRF PoC function to create some HTML which, when viewed
in a browser, will cause the selected request to be issued.
- Simulate manual testing - [Pro
version] The
Manual testing simulator can be used to generate HTTP traffic
that is similar to that caused by manual penetration testing.
- Compare site maps - You can use the
Compare site maps function to
identify differences between two site maps. This is a powerful feature
that can be used for various purposes, in particular testing for access
control vulnerabilities.
- Add comment - You can use this function to add a
comment to the selected table item(s). See
Annotations for more details.
- Highlight - You can use this function to apply a
highlight to the selected table item(s). See
Annotations for more details.
- Expand / collapse branch / requested items - You
can use these functions in the tree view to quickly expand whole
branches of the tree, and collapse them after you have reviewed them.
- Delete item(s) - This function removes the selected
item(s) permanently. Since by default the site map displays all content
that Burp has identified based on HTTP responses, the map will often
include a large amount of third-party content that is linked to from the
application you are interested in. You can deal with this either by
configuring a suitable target scope and
a display filter, or by manually removing
irrelevant branches of the tree.
- Copy URL(s) - This function copies the URL(s) of
the selected item(s) to the clipboard.
- Copy as curl command - This function copies to the
clipboard a curl command that can be used to generate the selected
request.
- Copy links - This function parses the selected
item(s) for links, and copies these to the clipboard.
- Save item(s) - This function lets you specify a
file to save the details of selected item(s) in XML format, including
full requests and responses, and all relevant metadata such as response
length, HTTP status code and MIME type.