BurpSuite使用指南之Spider模块(蜘蛛爬行)

时间:2024-05-21 17:29:28

BurpSuite使用指南之Spider模块(蜘蛛爬行)

一、简介

Burp Spider 是一个映射 web 应用程序的工具。它使用多种智能技术对一个应用程序的内容和功能进行全面的清查。

Burp Spider 通过跟踪 HTML 和 JavaScript 以及提交的表单中的超链接来映射目标应用程序,它还使用了一些其他的线索,如目录列表,资源类型的注释,以及 robots.txt 文件。结果会在站点地图中以树和表的形式显示出来,提供了一个清楚并非常详细的目标应用程序视图。

Burp Spider 能使你清楚地了解到一个 web 应用程序是怎样工作的,让你避免进行大量的手动任务而浪费时间,在跟踪链接,提交表单,精简 HTNL 源代码。可以快速地确人应用程序的潜在的脆弱功能,还允许你指定特定的漏洞,如 SQL 注入,路径遍历。

二、模块介绍

要对应用程序使用 Burp Spider 需要两个简单的步骤:

  1. 使用 Burp Proxy 配置为你浏览器的代理服务器,浏览目标应用程序(为了节省时间,你可以关闭代理拦截)。

  2. 到站点地图的"arget"选项上,选中目标应用程序驻留的主机和目录。选择上下文菜单的"
    spider this host/branc"选项。

BurpSuite使用指南之Spider模块(蜘蛛爬行)

选项一、Contro

用来开始和停止 Burp Spider,监视它的进度,以及定义 spidering 的范围。

BurpSuite使用指南之Spider模块(蜘蛛爬行)

选项二、Options

这个选项里包含了许多控制 Burp Spider 动作的选项。

1:Crawler Settings

BurpSuite使用指南之Spider模块(蜘蛛爬行)

check robots.txt:检测robot.txt文件。选择后Burp Spider会要求和处理robots.txt文件,提取内容链接。
Detect custom “not found” responese:检测自定义的’not found’响应。打开后Burp Spider会从每个域请求不存在的资源,编制指纹与诊断“not found”响应其它请求检测自定义“not found”的响应。
ignore links to non-text content:忽略非文本内容的连接。这个选项被选中,Spider 不会请求非文本资源。使用这个选项,会减少 spidering 时间。
request the root of all directories:请求所有的根目录。如果这个选项被选中,Burp Spider 会请求所有已确认的目标范围内的 web 目录,如果在这个目标站点存在目录遍历, 这选项将是非常的有用。
make a non-parameterized request to each dynamic page:对每个动态页面进行非参数化的请求。如果这个选项被选中,Burp Spider 会对在范围内的所有执行动作的 URL 进行无参数的 GET 请求。如果期待的参数没有被接收, 动态页面会有不同的响应,这个选项就能成功地探测出额外的站点内容和功能
Maximum link depth:这是Burp Suite在种子 URL 里的浏览”hops”的最大数。0表示让Burp Suite只请求种子 URL。如果指定的数值非常大,将会对范围内的链接进行无限期的有效跟踪。将此选项设置为一个合理的数字可以帮助防止循环Spider在某些种类的动态生成的内容。
Maximum parameterized requests per URL:请求该蜘蛛用不同的参数相同的基本URL的最大数目。将此选项设置为一个合理的数字可以帮助避免爬行“无限”的内容。

2:Passive Spidering

BurpSuite使用指南之Spider模块(蜘蛛爬行)

Passively spider as you browse:如果这个选项被选中,Burp Suite 会被动地处理所有通过 Burp Proxy 的 HTTP 请求,来确认访问页面上的链接和表格。使用这个选项能让 Burp Spider 建立一个包含应用程序内容的详细画面,甚至此时你仅仅使用浏览器浏览了内容的一个子集,因为所有被访问内容链接到内容都会自动地添加到 Suite 的站点地图上。
link depth to associate with proxy requests:这个选项控制着与通过 Burp Proxy 访问的 web 页面 有关的” link depth”。为了防止 Burp Spider 跟踪这个页面里的所有链接,要设置一个比上面 选项卡里的” maximum link depth”值还高的一个值。

3:Form Submission

BurpSuite使用指南之Spider模块(蜘蛛爬行)

individuate forms:个性化的形式。这个选项是配置个性化的标准(执行 URL,方法,区域,值)。当 Burp Spider 处理这些表格时,它会检查这些标准以确认表格是否是新的。旧的表格不会加入到提交序列。
Don’t submit:开启后蜘蛛不会提交任何表单。
prompt for guidance:提醒向导。如果被选中,在你提交每一个确认的表单前,Burp Suite 都会为你指示引导。这允许你根据需要在输入域中填写自定义的数据,以及选项提交到服务器的哪一个区域。
automatically submit:自动提交。如果选中,Burp Spider 通过使用定义的规则来填写输入域的文本值来自动地提交范围内的表单。每一条规则让你指定一个简单的文本或者正则表达式来匹配表单字段名,并提交那些表单名匹配的字段值。
set unmatched fields to:设置不匹配的字段。

4:application login

BurpSuite使用指南之Spider模块(蜘蛛爬行)

don’t submit login forms:不提交登录表单。开启后burp不会提交登录表单。
prompt for guidance:提示向导。Burp能交互地为你提示引导。默认设置项。
handle as ordinary forms:以一般形式处理。Burp 通过你配置的信息和自动填充规则,用处理其他表单的方式来处理登陆表单。
automatically submit these credentials:自动提交自定义的数据。开启后burp遇到登录表单会按照设定的值进行提交。

5:Spider Engine

BurpSuite使用指南之Spider模块(蜘蛛爬行)

Number of threads - 设置请求线程。控制并发请求数。
Number of retries on network failure - 如果出现连接错误或其他网络问题,Burp会放弃和移动之前重试的请求指定的次数。测试时间歇性网络故障是常见的,所以最好是在发生故障时重试该请求了好几次。
Pause before retry- 当重试失败的请求,Burp会等待指定的时间(以毫秒为单位)以下,然后重试失败。如果服务器宕机,繁忙,或间歇性的问题发生,最好是等待很短的时间,然后重试。
Throttle between requests:在每次请求之前等待一个指定的延迟(以毫秒为单位)。此选项很有用,以避免超载应用程序,或者是更隐蔽。
Add random variations to throttle:添加随机的变化到请求中。增加隐蔽性。

6:Request Headers

BurpSuite使用指南之Spider模块(蜘蛛爬行)

您可以配置头蜘蛛在请求中使用的自定义列表。这可能是有用的,以满足各个应用程序的特定要求 - 例如,测试设计用于移动设备的应用程序时,以模拟预期的用户代理。

Use HTTP version 1.1 :在蜘蛛请求中使用HTTP/1.1,不选中则使用HTTP/1.0.
Use Referer header:当从一个页面访问另一个页面是加入Referer头,这将更加相似与浏览器访问。

使用说明

Spider控制

Spider控制界面由Spider 状态和Spider 作用域两个功能组成。
BurpSuite使用指南之Spider模块(蜘蛛爬行)

Spider 状态除了显示当前进度、传输情况、请求队列等统计信息外,还有Spider运行/暂停按钮与清空队列按钮,分别用来控制Spider是否运行和队列中的数据管理。而Spider 作用域是用来控制Spider的抓取范围,从图中我们可以看到有两种控制方式,一种是使用上一章讲的Target Scope,另一种是用户自定义。当我们选中用户自定义按钮,界面改变成下面的样子,如下图所示。
BurpSuite使用指南之Spider模块(蜘蛛爬行)
此处用户自定义作用域的配置与Target Scope 的配置完全一致

Spider可选项设置

Spider可选项设置由抓取设置、抓取代理设置、表单提交设置、应用登陆设置、蜘蛛引擎设
置、请求消息头设置六个部分组成。

  • 抓取设置(Crawls Settings) -此项是用来控制蜘蛛抓取网页内容的方式
    BurpSuite使用指南之Spider模块(蜘蛛爬行)自上而下依次是:检查robots.txt 文件、检测404应答、忽略内容为空的链接、爬取根目录下所有文件和目录、对每一个动态页面发送无参数请求、最大链接深度、最大请求URL参数数目
  • 抓取代理设置(Passive Spidering )
    BurpSuite使用指南之Spider模块(蜘蛛爬行)这个设置比较简单,第一个如果勾选,则爬取时通过Burp Proxy,反之则不通过。第二个设置是控制代理的链接深度。默认为0,表示无限深度,即无论有多少层级的URL均需要爬取。
  • 表单提交设置(Form Submission) 表单提交设置主要是用来控制在蜘蛛抓取过程中,对于form表单的处理方式,其界面如下图:BurpSuite使用指南之Spider模块(蜘蛛爬行)第一个下拉选项中,是对form表单域的处理内容做控制,默认选择Action URL、method、fields、values,即同时处理请求的url、请求方式GET或者POST、包含哪些属性名以及属性值。点击下拉选项,可以选择其中一个或者几个。如下图:BurpSuite使用指南之Spider模块(蜘蛛爬行)接下来的设置的控制form表单的处理方式:不提交表单、需要手工确认、使用默认值自动填写三种方式。 不提交表单的含义是抓取时候不提交表单数据,这个非常好理解;需要手工确认是指当抓取表单时,弹出界面,让渗透测试人员自己手工确认表单数据;使用默认值自动填写是对表单的内容,使用下方的各个配置项进行匹配(匹配时可以使用完全匹配和正则表达式匹配两种方式其一),默认填写这些值,然后自动进行提交。其界面如下图所示:BurpSuite使用指南之Spider模块(蜘蛛爬行)从上图我们可以看出,对于表单的输入域我们可以添加和修改以满足实际情况的需要,如果还有其他的属性输入域我们不想每一个都录入,可以勾选“设置不匹配的属性值”,统一指定输入的值。如图中的[email protected]
  • 应用登陆(Application Login) 此选择项主要用来控制抓取时,登陆页面的处理方式。BurpSuite使用指南之Spider模块(蜘蛛爬行)选择项依次是:不提交登陆信息、手工确认登陆信息、作为普通表单处理(如果选择此项,则把登陆表单的form当作其他表单一样处理,对于登陆表单将使用"表单提交设置" 中的具体配置)、自动提交登陆(选择此项,需要在下方的输入框中指定用户名和密码)
  • 蜘蛛引擎设置(Spider Engine)和HTTP 消息头设置(Requests Header)
    BurpSuite使用指南之Spider模块(蜘蛛爬行)其中蜘蛛引擎设置主要是用来控制蜘蛛抓取的线程数、网络失败时重试的次数、重试暂停间隙等,而HTTP 消息头设置是用来设置Http请求的消息头自定义,比如说,我们可以编辑消息头信息,可以指定请求为移动设备,或者不同的手机型号,或者指定为Safari浏览器,指定HTTP协议版本为1.1、使用referer等。