Getting
Started
Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP
消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。本文主要介绍它的以下特点:
1.Target(目标)——显示目标目录结构的的一个功能
2.Proxy(代理)——拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
3.Spider(蜘蛛)——应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
4.Scanner(扫描器)——高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。
5.Intruder(入侵)——一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing
技术探测常规漏洞。
6.Repeater(中继器)——一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
7.Sequencer(会话)——用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
8.Decoder(解码器)——进行手动执行或对应用程序数据者智能解码编码的工具。
9.Comparer(对比)——通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
10.Extender(扩展)——可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp
Suit的功能。
11.Options(设置)——对Burp Suite的一些设置
测试工作流程
Burp支持手动的Web应用程序测试的活动。它可以让你有效地结合手动和自动化技术,使您可以完全控制所有的BurpSuite执行的行动,并提供有关您所测试的应用程序的详细信息和分析。
让我们一起来看看Burp Suite的测试流程过程吧。 如下图
简要分析
代理工具可以说是Burp Suite测试流程的一个心脏,它可以让你通过浏览器来浏览应用程序来捕获所有相关信息,并让您轻松地开始进一步行动,在一个典型的测试中,侦察和分析阶段包括以下任务:
手动映射应用程序-使用浏览器通过BurpSuite代理工作,手动映射应用程序通过以下链接,提交表单,并通过多步骤的过程加强。这个过程将填充代理的历史和目标站点地图与所有请求的内容,通过被动蜘蛛将添加到站点地图,可以从应用程序的响应来推断任何进一步的内容(通过链接、表单等)。也可以请求任何未经请求的站点(在站点地图中以灰色显示的),并使用浏览器请求这些。
在必要是执行自动映射-您可以使用BurpSuite自动映射过程中的各种方法。可以进行自动蜘蛛爬行,要求在站点地图未经请求的站点。请务必在使用这个工具之前,检查所有的蜘蛛爬行设置。
使用内容查找功能发现,可以让您浏览或蜘蛛爬行可见的内容链接以进一步的操作。
使用BurpSuite Intruder(入侵者)通过共同文件和目录列表执行自定义的发现,循环,并确定命中。
注意,在执行任何自动操作之前,可能有必要更新的BurpSuite的配置的各个方面,诸如目标的范围和会话处理。
分析应用程序的攻击面 - 映射应用程序的过程中填入代理服务器的历史和目标站点地图与所有的BurpSuite已抓获有关应用程序的信息。这两个库中包含的功能来帮助您分析它们所包含的信息,并评估受攻击面的应用程序公开。此外,您可以使用BurpSuite的目标分析器报告的攻击面的程度和不同类型的应用程序使用的URL
。
接下来主要介绍下BurpSuite的各个功能吧。先介绍Proxy功能,因为Proxy起到一个心脏功能,所有的应用都基于Proxy的代理功能。
Burp Suite功能按钮键翻译对照
Proxy功能
Burp Proxy相当于BurpSuite的心脏,通过拦截,查看和修改所有的请求和响应您的浏览器与目标Web服务器之间传递。
下面了解有关BurpProxy:
Using BurpProxy http、https
设置代理的方法:以http ie为例:
工具>>Internet选项>>连接>>局域网>>勾选代理服务器填写地址127.0.0.1端口8080
这里端口可以随便定义但是要跟burp的监听端口要一致然后保存再到Proxy的Options中添加add
这样http协议的监听就可以了,当intercept is on表示开启拦截功能,反之
这样就代表拦截成功,我们可以右击send to Repeater去修改数据再发送,也可以右击改变提交请求方式(change
request method)比如get或者post等功能
https
1.以管理员权限运行ie浏览器
2.像http那样配置好代理
3.在地址栏访问https地址,单击继续
4.点击错误证书在这个地址栏
5.点击查看证书
6.在证书路径选项卡点击PortSwigger CA,然后再点击查看证书
7.在常规选项卡里点击安装证书
8.在证书导入向导中,选择“将所有的证书放入下列存储区”
9.点击浏览
10.以当前用户或者本机计算机都可以
11.点击ok完成导入
12.重启ie(不需要以管理员权限运行) 其它浏览器差不多具体请查看官网
Intercept
用于显示和修改HTTP请求和响应,通过你的浏览器和Web服务器之间。在BurpProxy的选项中,您可以配置拦截规则来确定请求是什么和响应被拦截(例如,范围内的项目,与特定文件扩展名,项目要求与参数,等)。
该面板还包含以下控制:
Forward
当你编辑信息之后,发送信息到服务器或浏览器
Drop
当你不想要发送这次信息可以点击drop放弃这个拦截信息
Interception is on/off
这个按钮用来切换和关闭所有拦截。如果按钮显示Interception is On,表示请求和响应将被拦截或自动转发根据配置的拦截规则配置代理选项。如果按钮显示Interception
is off则显示拦截之后的所有信息将自动转发。
Action
说明一个菜单可用的动作行为操作可以有哪些操作功能。
Comment field
为请求或响应添加注释,以便更容易在History选项卡中识别它们。
Highlight
为请求或响应添加颜色,可以在history选项卡和截获中更容易发现。
History
代理历史认为每个请求和响应。通过代理可以记录全部请求和响应。您可以过滤和注释这个信息来帮助管理它,并使用代理的历史来测试流程。History(代理历史)总在更新,即使你把Interception
turned off(拦截关闭),允许浏览不中断的同时还监测应用流量的关键细节。
History Table
表中显示已通过代理HTTP消息的所有请求,并且可以查看完整的你所做的任何修改和截获的信息的请求和响应。
表中包含以下字段:
# (请求索引号)、Host(主机)、Method(请求方式)、URL(请求地址)、Params(参数)、Edited(编辑)、Status(状态)、Length(响应字节长度)、MIME
type(响应的MLME类型)、Extension(地址文件扩展名)、Title(页面标题)、Comment(注释)、SSL、IP(目标IP地址)、Cookies、Time(发出请求时间)、Listener
port(监听端口)。
您可以通过单击任何列标题进行升序或降序排列。如果您在表中双击选择一个项目地址,会显示出一个详细的请求和响应的窗口。或者右击选择
Show new history window
Display Filter
Proxy histroy有一个可以用来在视图中隐藏某些内容的功能,以使其更易于分析和你感兴趣的工作内容的显示过滤。
History Table上方的过滤栏描述了当前的显示过滤器。点击过滤器栏打开要编辑的过滤器选项。该过滤器可以基于以下属性进行配置:
Request type
Show only in-scope items--勾选则显示在范围内的项目,反之。
MIME type
您可以设定是否显示或隐藏包含各种不同的MIME类型,如HTML,CSS或图像的响应。
Status code
您可以设定是否要显示或隐藏各种HTTP状态码响应。
Search term
您可以过滤对反应是否不包含指定的搜索词。您可以设定搜索词是否是一个文字字符串或正则表达式,以及是否区分大小写。如果您选择了“Negative
search (消极搜索)”选项,然后不匹配的搜索词唯一的项目将被显示。
File extension
您可以设定是否要显示或隐藏指定的文件扩展名的项目。
Annotation
您可以设定是否显示使用用户提供的评论或仅亮点项目。
Listener
你可以只显示特定的监听端口上接收的项目。测试访问控制时可能有用。 如果设置一个过滤器,隐藏一些项目,这些都没有被删除,只是隐藏起来,如果你取消设置相关的过滤器将再次出现。这意味着您可以使用筛选器来帮助您系统地研究了大量代理的历史来理解各种不同的请求显示。
Annotations
您可以通过添加注释和批注亮点代理历史记录项。这可能是有用的描述不同要求的目的,并标记了进一步查看。 两种方式添加亮点:
1)使用在最左边的表列中的下拉菜单中突出显示单个项目。 2)可以突出显示使用上下文菜单中的“亮点”项目的一个或多个选定的项目。
两种方法添加注释: 1)双击相关条目,注释列中,添加或编辑就地评论。 2)发表评论使用上下文菜单中的“添加注释”项目的一个或多个选定的项目。
除了以上两种,您也可以注释项目,它们出现在拦截选项卡,这些都将自动出现在历史记录表。 当您已经注明想要的请求,您可以使用列排序和显示过滤器后迅速找到这些项目。
Options
设置代理监听、请求和响应,拦截反应,匹配和替换,ssl等。
Proxy Listeners
代理侦听器是侦听从您的浏览器传入的连接本地HTTP代理服务器。它允许您监视和拦截所有的请求和响应,并且位于BurpProxy的工作流的心脏。默认情况下,Burp默认监听12.0.0.1地址,端口8080。要使用这个监听器,你需要配置你的浏览器使用127.0.0.1:8080作为代理服务器。此默认监听器是必需的测试几乎所有的基于浏览器的所有Web应用程序。
1)Binding
这些设置控制Burp怎么代理监听器绑定到本地网络接口:
Bind to port---这是将被打开侦听传入连接的本地接口上的端口。你将需要使用一个没有被绑定被其他应用程序的闲置端口。
Bind to address---这是Burp绑定到本地接口的IP地址。
您可以绑定到刚刚127.0.0.1接口或所有接口,或任何特定的本地IP地址。
注意:如果监听器绑定到所有接口或特定的非loopback接口,那么其他计算机可能无法连接到该侦听器。这可能使他们发起出站连接,从您的IP地址发起,并以访问代理服务器历史的内容,其中可能包含敏感数据,如登录凭据。你应该只启用此当你位于一个受信任的网络上。
BurpSuite让您创建多个代理服务器的侦听器,并提供了丰富的控制自己的行为的配置选项。你可能偶尔需要进行测试时不寻常的应用,或与一些非基于浏览器的HTTP客户端进行合作,利用这些选项。
2)Request Handling
这些设置包括选项来控制是否BurpSuite重定向通过此侦听器接收到的请求:
Redirect to host - 如果配置了这个选项,Burp会在每次请求转发到指定的主机,而不必受限于浏览器所请求的目标。需要注意的是,如果你正使用该选项,则可能需要配置匹配/替换规则重写的主机头中的请求,如果服务器中,您重定向请求预期,不同于由浏览器发送一个主机头。
Redirect to port - 如果配置了这个选项,Burp会在每次请求转发到指定的端口,而不必受限于浏览器所请求的目标。
Force use of SSL - 如果配置了这个选项,Burp会使用HTTPS在所有向外的连接,即使传入的请求中使用普通的HTTP。您可以使用此选项,在与SSL相关的响应修改选项结合,开展sslstrip般的攻击使用Burp,其中,强制执行HTTPS的应用程序可以降级为普通的HTTP的受害用户的流量在不知不觉中通过BurpProxy代理。
注意:每一个重定向选项都可以单独使用。因此,例如,可以将所有请求重定向到一个特定的主机,同时保留原来的端口和协议在每个原始请求中使用。隐形BurpProxy的支持允许非代理感知客户端直接连接到监听。
3)Certificate
这些设置控制呈现给客户端的SSL服务器的SSL证书。使用这些选项可以解决一些使用拦截代理时出现的SSL问题:
你可以消除您的浏览器的SSL警报,并需要建立SSL例外。
凡网页加载来自其他域的SSL保护的项目,您可以确保这些均可由浏览器加载,而不需要先手动接受每个引用的域代理的SSL证书。
您可以与拒绝连接到服务器,如果接收到无效的SSL证书胖客户端应用程序的工作。
下列选项可用:
Use a self-signed certificate---||-一个简单的自签名SSL证书提交给您的浏览器,它总是导致SSL警告。
Generate CA-signed per-host certificate---||-这是默认选项。安装后,BurpSuite创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计算机上使用,每次BurpSuite运行。当你的浏览器发出SSL连接到指定的主机,Burp产生该主机,通过CA证书签名的SSL证书。您可以安装BurpSuite的CA证书作为在浏览器中受信任的根,从而使每个主机的证书被接受,没有任何警报。您还可以导出其他工具或Burp的其他实例使用CA证书。
Generate a CA-signed certificate with a specific hostname---||这类似于前面的选项;然而,Burp会产生一个单一的主机证书与每一个SSL连接使用,使用您指定的主机名。在进行无形的代理时,此选项有时是必要的,因为客户端没有发送连接请求,因此Burp不能确定SSL协议所需的主机名。你也可以安装BurpSuite的CA证书作为受信任的根。
Use a custom certificate---||-此选项使您可以加载一个特定的证书(在PKCS#12格式)呈现给你的浏览器。如果应用程序使用它需要特定的服务器证书(例如一个给定序列号或证书链)的客户端应该使用这个选项。
4)Exporting and Importing the CA Certificate
您可以导出您安装特定的CA证书在其他工具或BurpSuite的其他情况下使用,并且可以导入证书Burp在当前实例使用。
您可以选择要导出的证书只(用于导入到您的浏览器或其他设备的信任),或者你可以同时导出的证书及其私钥。
注意:您不应该透露的私钥证书给任何不可信的一方。拥有你的证书和密钥的恶意攻击者可能可以,即使你不使用Burp拦截浏览器的HTTPS流量。
您也可以仅通过访问http://burp/cert在浏览器中导出证书。它使HTTPS请求您的浏览器相同的证书,但在一些移动设备上安装时,设备通过一个URL来下载它是有帮助的。
Interception Options
设置控制哪些请求和响应都停滞用于查看和编辑在拦截选项卡。单独的设置将应用到请求和响应。
在“Intercept”复选框确定是否有讯息拦截。如果它被选中,然后Burp应用配置的规则对每个消息,以确定它是否应该被拦截。
个别规则可以激活或停用对每个规则的左边的复选框。规则可以被添加,编辑,删除,或使用按钮重新排序。规则可以在消息,包括域名,
IP地址,协议, HTTP方法, URL,文件扩展名,参数,cookie ,头/主体内容,状态代码,MIME类型,
HTML页面标题和代理的几乎任何属性进行配置侦听端口。您可以配置规则来只拦截项目的网址是目标范围之内的。可以使用正则表达式对定义复杂的匹配条件。
规则按顺序处理,并且使用布尔运算符AND和OR组合。这些都与处理简单的“从左到右”的逻辑,其中每个算子的范围,如下所示:(所有规则之前累积的结果)和/或(当前规则的结果)所有活动的规则在每封邮件进行处理,并最终活动规则应用后的结果确定消息是否被拦截或转发的背景。“自动更新内容长度”复选框控件时,这已被用户修改是否Burp自动更新消息的Content-Length头。使用这个选项通常是必不可少的,当HTTP主体已被修改。
如果有需求,可以在请求结束时自动修复丢失或多余的新行。如果编辑请求不包含标题下面一个空行,Burp会添加此。如果与含有URL编码参数的身体的编辑请求包含任何换行符在身体的末端,Burp就会删除这些。这个选项可以是有用的纠正,而手动编辑在拦截视图的要求,以避免发出无效的请求向服务器发出的错误。
Response Modification
设置用于执行自动响应的修改。您可以使用这些选项通过自动重写应用程序响应的HTML来完成各种任务。 下列选项在数据删除客户端控件可能是有用的:
1.显示隐藏的表单字段。 (有一个子选项,以突出强调取消隐藏栏在屏幕上,便于识别。
)
2.启用已禁用的表单域
3.删除输入字段长度限制
4.删除的JavaScript表单验证
下列选项可用于禁止客户端逻辑用于测试目的(注意,这些特征并非设计用来作为NoScript的的方式进行安全防御)有用:
1.删除所有的JavaScript。
2.删除<object>标记。
下列选项可用于提供对受害用户的流量在不知不觉中被通过BurpSuite代理sslstrip般的攻击。您可以在与听者选项强制SSL的传出请求,以有效地从用户的连接剥离SSL一起使用这些:
1.转换HTTPS为HTTP的链接。
2.删除cookie安全标志。
Match and Replace
用于自动替换请求和响应通过代理的部分。对于每一个HTTP消息,已启用的匹配和替换规则依次执行,以及任何适用的替代品制成。规则可以分别被定义为请求和响应,对于消息头和身体,并且还特别为只请求的第一行。每个规则可以指定一个文字字符串或正则表达式来匹配,和一个字符串来替换它。对于邮件头,如果匹配条件,整个头和替换字符串匹配留空,然后头被删除。如果指定一个空的匹配表达式,然后替换字符串将被添加为一个新的头。有可协助常见任务的各种缺省规则
- 这些都是默认为禁用。 匹配多行区域。您可以使用标准的正则表达式语法来匹配邮件正文的多行区域。
在替换字符串,组可以使用其次为索引$引用。所以下面的替换字符串将包含被匹配在上述正则表达式,该标记的名称:
SSL Pass Through
用于指定目标Web服务器为其Burp会直接通过SSL连接。关于通过这些连接的请求或响应任何细节将在代理拦截视图或历史。
通过SSL连接传递可以在这情况下是不能直接消除了客户端的SSL错误是非常有用 - 例如,在执行SSL证书钉扎的移动应用程序。如果应用程序访问多个域,或使用HTTP和HTTPS连接的混合,然后通过SSL连接到特定问题的主机仍然可以让您以正常方式使用Burp其他交通工作。
如果启用该选项来自动添加客户端SSL协商失败的项目,然后BurpSuite会在客户端失败的SSL协议检测(例如,由于不承认BurpSuite的CA证书),并会自动将相关的服务器添加到SSL通通过列表。
Miscellaneous
控制Burp代理的行为的一些具体细节。下列选项可用:
Use HTTP/1.0 in requests to server - 该选项控制BurpSuite代理是否强制在请求目标服务器的HTTP
1.0版。默认设置是使用任何的HTTP版本所使用的浏览器。然而,一些遗留服务器或应用程序可能需要1.0版本才能正常工作。
Use HTTP/1.0 in responses to client - 目前所有的浏览器都支持这两个版本1.0和HTTP
1.1 。从1.0版本开始已经减少了一些功能,迫使使用1.0版本有时会很有用,以控制浏览器的行为的各个方面,例如防止企图执行HTTP流水线。
Set response header “Connection:close” - 这个选项也可能是有用的,以防止HTTP流水线在某些情况下。
Unpack gzip / deflate in requests - 某些应用程序(通常是那些使用自定义客户端组件)
,压缩在请求消息体。该选项控制BurpProxy是否自动解压缩压缩请求主体。请注意,某些应用程序可能被破坏,如果他们期望的压缩体和压缩已通过Burp被删除。
Unpack gzip / deflate in responses - 大多数浏览器接受的gzip和响应紧缩压缩的内容。该选项控制BurpSuite代理是否自动解压缩压缩响应机构。请注意,您可以经常防止服务器试图通过删除请求(可能使用BurpProxy的匹配和替换功能)的Accept-Encoding头压缩的响应。
Disable web interface at http://burp - 如果你不得不配置你的听众接受无保护的接口上的连接,并希望阻止他人接触到Burp浏览器控件,此选项可能有用。
Suppress Burp error messages - 当某些错误时,默认情况下BurpSuite返回有意义的错误信息到浏览器。如果你想在隐身模式下运行Burp,履行人在这方面的中间人攻击的受害者用户,那么它可能是有用的抑制这些错误信息来掩盖一个事实,即Burp是参与。
Disable logging to history and site map - 此选项可以防止Burp从记录任何请求到代理服务器的历史或目标站点地图。如果您使用的是Burp代理对于一些特定用途,如身份验证到上游服务器或进行匹配和替换操作,并且要避免产生内存和存储开销采伐牵扯它可能是有用的。
Enable interception at startup- 此选项可让您设定是否在Burp时启动代理截获应该启用。您可以选择始终启用拦截,始终禁用拦截,或者从Burp上次关闭恢复设置。
Target功能
目标工具包含了SiteMap,用你的目标应用程序的详细信息。它可以让你定义哪些对象在范围上为你目前的工作,也可以让你手动测试漏洞的过程。
Using Burp Target
在地址栏输入www.baidu.com,如图
这样看起来site map是不是很乱,则可以右击add to scope,然后点击Filter勾选Show
only in-scope items,此时你再回头看Site map就只有百度一个地址了,这里filter可以过滤一些参数,show
all显示全部,hide隐藏所有,如果勾选了表示不过滤
针对地址右击显示当前可以做的一些动作操作等功能。左图 针对文件右击显示当前可以做一些动作操作等功能。右图
2)Scope
这个主要是配合Site map做一些过滤的功能,如图:
Include in scope就是扫描地址或者拦截历史记录里右击有个add to scope就是添加到这了,也可以自己手动添加。
Target分为site map和scope两个选项卡
SiteMap
中心Site Map汇总所有的信息Burp已经收集到的有关地址。你可以过滤并标注此信息,以帮助管理它,也可以使用SiteMap来手动测试工作流程。
Target Information
SiteMap会在目标中以树形和表形式显示,并且还可以查看完整的请求和响应。树视图包含内容的分层表示,随着细分为地址,目录,文件和参数化请求的URL
。您还可以扩大有趣的分支才能看到进一步的细节。如果您选择树的一个或多个部分,在所有子分支所选择的项目和项目都显示在表视图。
该表视图显示有关每个项目(URL , HTTP状态代码,网页标题等)的关键细节。您可以根据任意列进行排序表(单击列标题来循环升序排序,降序排序,和未排序)
。如果您在表中选择一个项目,请求和响应(如适用)该项目显示在请求/响应窗格。这包含了请求和响应的HTTP报文的编辑器,提供每封邮件的详细分析。
站点地图汇总所有的信息BurpSuite已经收集到的有关申请。这包括:
所有这一切都通过代理服务器直接请求的资源。
已推断出通过分析响应代理请求的任何物品(前提是你没有禁用被动Spider) 。
内容使用Spider或内容发现功能查找。
由用户手动添加的任何项目,从其它工具的输出。
已请求在SiteMap中的项目会显示为黑色。尚未被请求的项目显示为灰色。默认情况下(与被动蜘蛛(passviely
scan this host)启用) ,当你开始浏览一个典型的应用,大量的内容将显示为灰色之前,你甚至得到尽可能要求,因为BurpSuite发现在您所请求的内容链接到它。您可以删除不感兴趣的地址
Display Filter
Sitemap可以用来隐藏某些内容从视图中,以使其更易于分析和对你感兴趣的工作内容的显示过滤器 Sitemap上方的过滤栏描述了当前的显示过滤器。点击过滤器栏打开要编辑的过滤器选项。该过滤器可以基于以下属性进行配置:
Request type 你可以只显示在范围内的项目,只能与反应项目,或者带参数的请求。 MIME type
您可以设定是否显示或隐藏包含各种不同的MIME类型,如HTML,CSS或图像的响应。 Status code
您可以设定是否要显示或隐藏各种HTTP状态码响应。 Search term 您可以过滤对反应是否不包含指定的搜索词。您可以设定搜索词是否是一个文字字符串或正则表达式,以及是否区分大小写。如果您选择了“消极搜索”选项,然后不匹配的搜索词唯一的项目将被显示。
File extension 您可以设定是否要显示或隐藏指定的文件扩展名的项目。 Annotation
您可以设定是否显示使用用户提供的评论或仅亮点项目。
Annotations
通过添加注释和批注亮点代理历史记录项。这可能是有用的描述不同要求的目的,并标记了进一步查看。
您可以通过添加注释和批注亮点代理历史记录项。这可能是有用的描述不同要求的目的,并标记了进一步查看。
两种方式添加亮点:
1)使用在最左边的表列中的下拉菜单中突出显示单个项目。
2)可以突出显示使用上下文菜单中的“亮点”项目的一个或多个选定的项目。
两种方法添加注释:
3)双击相关条目,注释列中,添加或编辑就地评论。
4)发表评论使用上下文菜单中的“添加注释”项目的一个或多个选定的项目。
除了以上两种,您也可以注释项目,它们出现在拦截选项卡,这些都将自动出现在历史记录表。 当您已经注明想要的请求,您可以使用列排序和显示过滤器后迅速找到这些项目。
Scope
Target scope设置,可以从SiteMap中添加也可以手动添加扫描范围到Scope。你可以在Target
SiteMap和Proxy history上设置只显示在范围内的项目。并且可以设置代理拦截只有在范围内的请求和响应。Spider会扫描在范围内的地址。专业版还可以设置自动启动在范围内项目的漏洞扫描。您可以配置Intruder和Repeater跟随重定向到任何在范围内的网址。发送Burp目标以适当的方式执行行动,只针对你感兴趣并愿意攻击项目。
范围定义使用的URL匹配规则两个表 - 一个“包括(include)”列表和“exclude(排除)”列表中。Burp根据一个URL地址来决定,如果它是目标范围之内,这将被视为是在范围上如果URL匹配至少一个“include”在内的规则,不符合“exclude”规则。这样能够定义特定的主机和目录为大致范围内,且距离该范围特定的子目录或文件(如注销或行政职能)排除。
Spider功能
Burp Spider 是一个映射 web 应用程序的工具。它使用多种智能技术对一个应用程序的内容和功能进行全面的清查。
通过跟踪 HTML 和 JavaScript 以及提交的表单中的超链接来映射目标应用程序,它还使用了一些其他的线索,如目录列表,资源类型的注释,以及
robots.txt 文件。 结果会在站点地图中以树和表的形式显示出来,提供了一个清楚并非常详细的目标应用程序
视图。能使你清楚地了解到一个 web 应用程序是怎样工作的,让你避免进行大量 的手动任务而浪费时间,在跟踪链接,提交表单,精简
HTNL 源代码。可以快速地确人应 用程序的潜在的脆弱功能,还允许你指定特定的漏洞,如 SQL 注入,路径遍历。
Using Burp Spider
要对应用程序使用 Burp Spider 需要两个简单的步骤:
1 使用 Burp Proxy 配置为你浏览器的代理服务器,浏览目标应用程序(为了节省时间,你可 以关闭代理拦截)。
2 到站点地图的”target”选项上,选中目标应用程序驻留的主机和目录。选择上下文菜单的”
spider this host/branch”选项。
你也可以在任何 Burp 工具的任意请求或响应上使用上下文菜单上选择” spider this item”。当你发送一个站点地图的分支来
spidering,Spider 会首先检查这个分支是否在定义好的spidering 的范围内。如果不是,Burp
会提示你是否把相关的 URL 添加到范围里。然后,Burp 开始 spidering,并执行下面的操作:
在分支上,请求那些已被发现的还没被请求过的 URL。 在分支上,提交那些已被发现但提交 URL 错误的表单。
重复请求分支上的先前收到的状态码为 304 的项,为检索到一个应用程序的新(未进入缓存)副本。 对所有的检索到内容进行解析以确认新的
URL 和表单。 只有发现新内容就递归地重复这些步骤。 继续在所有的范围区域内 spidering,直到没有新内容为止。
注意 Spider 会跟踪任何在当前定义的 spidering 范围内的 URL 链接。如果你定义了一个
范围比较大的目标,并且你只选择了其中的一个分支来 spidering,这时 Spider 会跟踪所有进入到这个比较大的范围内的链接,于是也就不在原来的分支上
spider。为了确保 Spider 只在指定分支内的请求上,你应该在开始时,就把 spidering
范围配置为只在这个分支上。
你应该小心地使用 Burp Spider。在它的默认设置上,Spider 会在 spidering 范围内使用
默认输入值,自动地提交任意表格,并且会请求许多平常用户在只使用一个浏览器不会发出 的请求。如果在你定义范围的
URL 是用来执行敏感操作的,这些操作都会被带到应用程序 上。在你完全地开始自动探索内容之前,使用浏览器对应用程序进行一些手动的映射,是非常可取的。
Control tab
这个选项是用来开始和停止 Burp Spider,监视它的进度,以及定义 spidering 的范围。
Spider Status
1)Spider running
这个是用来开始和停止 Spider。Spider 停止后,它自己不会产生请求,但它会 继续处理通过 Burp
Proxy 的响应,并且在 spidering 范围内的新发现的项都会送入请求队列 里,当 Spider
重新启动时,再来请求。这里显示的一些 Spider 进度的指标,让你能看到剩余的内容和工作量的大小。
2)Clear queues
如果你想改变你工作的优先权,你可以完全地清除当前队列的项目,来让其他 的项目加入队列。注意如果被清除的项目如果还在范围内并且
Spider 的分析器发现有新的 链接到这个项目,那么它们还会加入队列。
Spider Scope
在这个面板里,你能精确地定义 Spider 的请求范围。最好的方法通常是使用一套广泛的目标范围,默认情况下,蜘蛛会使用该范围。如果您需要定义不同范围的蜘蛛使用,然后选择“Use
custom scope(使用自定义范围)”。进一步的配置面板会出现在相同的方式套件范围的目标范围内面板的功能。如果你使用自定义范围并向
Spider 发送不在范围内 的项,则 Burp 会自动更新这个自定义的范围而不是 Suite 范围。
Options tab
这个选项里包含了许多控制 Burp Spider 动作的选项,如下描述。这些设置在 spider 启
动后还可以修改的,并且这修改对先前的结果也是有效的。例如,如果增加了最大链接深度, 在以前的最大链接深度外的链接如果满足现在的条件,也会加入到请求队列里。
Crawler Settings
1)check robots.txt
如果这个选项被选中,Burp Spider会要求和处理robots.txt文件,提取内容链接。这个文件是由机器人排除协议控制的蜘蛛状制剂在互联网上的行为。请注意,注意
Burp Spider不会确认 robots 排除协议。Burp Spider 会列举出目标应用程序的所有内容,请求所有在范围
内的 robots.txt 条目。
2)detect custom "not found"
responses
HTTP协议需要向Web服务器返回404状态码,如果一个请求的资源不存在。然而,许多Web应用程序返回使用不同的状态代码定制为“not
found”的网页。如果是这种情况,则使用该选项可以防止误报的网站内容的映射。Burp Spider从每个域请求不存在的资源,编制指纹与诊断“not
found”响应其它请求检测定制“not found”的回应。
3)ignore links to non-text content
常常需要推断出在 HTML 上下文里链接到特殊资源的 MIME 类型。例如,带有 IMG 标记的 URL
会返回图像;那些带有 SCRIPT 标记的会返回 JavaScript。 如果这个选项被选中,Spider
不会请求在这个上下文出现的出现的非文本资源。使用这个选 项,会减少 spidering 时间,降低忽略掉感兴趣内容的风险。
4)request the root of all directories
如果这个选项被选中,Burp Spider 会请求所有已确认的目标 范围内的
web 目录,除了那些目录里的文件。如果在这个目标站点上目录索引是可用的, 这选项将是非常的有用。
5)make a non-parameterised request
to each dynamic page
如果这个选项被选中,Burp Spider 会对在范围内的所有执行动作的 URL 进行无参数的 GET
请求。如果期待的参数没有被接收, 动态页面会有不同的响应,这个选项就能成功地探测出添加的站点内容和功能。
6)maximum link depth
这是Burp Suite在种子 URL 里的浏览”hops”的最大数。0表示让Burp Suite只请求种子
URL。如果指定的数值非常大,将会对范围内的链接进行无限期的有效跟踪。将此选项设置为一个合理的数字可以帮助防止循环Spider在某些种类的动态生成的内容。
7)Maximum parameterized requests per
URL
请求该蜘蛛用不同的参数相同的基本URL的最大数目。将此选项设置为一个合理的数字可以帮助避免爬行“无限”的内容,如在URL中的日期参数的日历应用程序。
Passive Spidering(被动扫描)
1)passively spider as you browse
如果这个选项被选中,Burp Suite 会被动地处理所有通过 Burp Proxy 的 HTTP 请求,来确认访问页面上的链接和表格。使用这个选项能让
Burp Spider 建立一个包含应用程序内容的详细画面,甚至此时你仅仅使用浏览器浏览了内容的一个子集,因为所有被访问内容链接到内容都会自动地添加到
Suite 的站点地图上。
2)link depth to associate with proxy
requests
这个选项控制着与通过 Burp Proxy 访问的 web 页面 有关的” link depth”。为了防止
Burp Spider 跟踪这个页面里的所有链接,要设置一个比上面 选项卡里的” maximum link
depth”值还高的一个值。
Form Submission
1)individuate forms
这个选项是配置个性化的标准(执行 URL,方法,区域,值)。当 Burp Spider 处理这些表格时,它会检查这些标准以确认表格是否是新的。旧的表格不会加入到提交序列。
2)Don’t submit
如果选中这个,Burp Spider 不会提交任何表单。
3)prompt for guidance
如果选中这个,在你提交每一个确认的表单前,Burp Suite 都会为你指示引导。这允许你根据需要在输入域中填写自定义的数据,以及选项提交到服务器的哪一个
区域,以及是否遍历整个区域。
4)automatically submit
如果选中,Burp Spider 通过使用定义的规则来填写输入域的文本值来自动地提交范围内的表单。每一条规则让你指定一个简单的文本或者正则表达式来匹配表单字段名,并提交那些表单名匹配的字段值。可以为任意不匹配的字段指定默认值。
在应用程序通常需要对所有输入域都是有效格式的数据的地方,如果你想通过登记表单 和相似功能自动地 spider,则这个选项会非常有用。在自动地把表单数据提交到广阔范围内
的应用程序时,Burp 使用一组非常成功的规则。当然,如果你遇到有自己需要提交的特定 值的表单字段名时,你可以修改这些或者添加自己的规则。你要小心地使用这个选项,因为
提交了表单里的虚假值有时会导致一些不希望看到操作。
许多表单包含了多个提交元素,这些会对应用程序进行不同的操作,和发现不同的内容。 你可以配置 Spider
重复通过表单里提交元素的值,向每个表单提交多次,次数低于配置的 最大值。
Application Login
登陆表单在应用程序中扮演一个特殊角色,并且你常常会让 Burp 用和处理平常表单不 一样的方式来处理这个表单。使用这个配置,你可以告诉
Spider 在遇到一个表单执行下面 4 种不同操作的一种:
1.如果你没有证书,或者关注 Spidering 的敏感保护功能,Burp 可以忽略登陆表单。
2.Burp 能交互地为你提示引导,使你能够指定证书。这时默认设置项。
3.Burp 通过你配置的信息和自动填充规则,用处理其他表单的方式来处理登陆表单。
4.在遇到的每个登陆表单时,Burp 能自动地提交特定的证书。
在最后一种情况下,任何时间 Burp 遇到一个包含密码域的表单,会提交你配置的密码到密码域,提交你配置用户名到最像用户名的字段域。如果你有应用程序的证书,想让
Spider为你处理登陆,通常情况下这是最好的选项
Spider Engine
这些设置控制用于Spidering时发出HTTP请求的引擎。下列选项可用:
1)Number of threads----此选项控制并发请求进程数。
2)Number of retries on network failure----如果出现连接错误或其他网络问题,BurpSuite会放弃和移动之前重试的请求指定的次数。测试时间歇性网络故障是常见的,所以最好是在发生故障时重试该请求了好几次。
3)Pause before retry----当重试失败的请求,BurpSuite会等待指定的时间(以毫秒为单位)以下,然后重试失败。如果服务器被宕掉、繁忙或间歇性的问题发生,最好是等待很短的时间,然后重试。
4)Throttle between requests----BurpSuite可以在每次请求之前等待一个指定的延迟(以毫秒为单位)。此选项很有用,以避免超载应用程序,或者是更隐蔽。
5)Add random variations to throttle----此选项可以通过降低您的要求的时序模式进一步增加隐身。
Request Headers
这些设置控制由蜘蛛发出的HTTP请求中使用的请求头。您可以配置头蜘蛛在请求中使用的自定义列表。这可能是有用的,以满足各个应用程序的特定要求
- 例如,测试设计用于移动设备的应用程序时,以模拟预期的用户代理。
以下选项也可用:
1)Use HTTP version 1.1----如果选中,Spider会使用HTTP1.1版在其请求;否则,它会使用1.0版。
2)Use Referer header----如果选中,Spider会要求从另一个页面链接到任何项目时提交相关Referer头。此选项很有用更加紧密地模拟将通过您的浏览器发出的请求,并且还可能需要浏览一些应用程序验证Referer头。
Scanner功能
Using Burp Scanner
分以下几个步骤来简单使用Scanner
1.设置好代理之后在地址栏输入你要抓取的地址,并且要在Proxy里把拦截关了,随后切换到Scanner的Results就可以看到地址已经在开始扫描咯
2.对地址右击还可以导出报告,
Html或者xml随便你以什么格式的,然后一直下一步下一步到如下图选择保存文件到哪
我们打开看看,是不是很漂亮呢
3.如果扫描出漏洞了我们还可以直接在这针对某个漏洞进行查看,如果想测试的话可以发送到Repeater进行测试哦
Results
结果选项卡包含所有的扫描仪已确定,从主动和被动扫描的问题。以一种树型图显示应用程序的内容,其中的问题已经被发现,使用URL分解成域,目录和文件的层次表示。如果您选择一个或多个部分的分支,所有选定的项目将扫描的问题都列出来,用组合在一起的相同类型的问题。您还可以扩大这些问题汇总查看所有的每种类型的个别问题。
如果您选择的问题那么将显示相应的详情,包括:
1)自定义的漏洞,咨询内容包括:
问题类型及其整治的标准描述。
中适用于该问题,并影响其修复任何特定的功能的描述。
2)完整的请求和响应都是依据报告了该问题。在适用的情况,是相关的识别和再现问题的请求和响应的部分在请求和响应消息的编辑器中突出显示。
通常情况下,测试并验证一个问题最快的方法是使用发送到Repeater。另外,对于GET请求,您可以复制此URL,并将其粘贴到浏览器中。然后,您可以重新发出请求。
Burp扫描报告描述,每一个问题都会给出严重程度(高,中,低,资讯)和置信度(肯定的,坚定的,暂定)的评级。当一个问题一直使用一种技术,本质上是不太可靠(如SQL盲注)确定,Burp会让你意识到这一点,通过丢弃的置信水平存在一定不足。这些额定值应始终被解释为指示性的,你应该根据你的应用程序的功能和业务方面的知识进行审查。
这个问题已经上市,你可以用它来执行以下操作的上下文菜单:如图所示
Report selected issues
启动BurpSuite Scanner的报告向导,生成的选定问题的正式报告。 Set severity
- 这让你重新分配问题的严重程度。您可以设置严重程度高,中,低,或信息。您还可以标记问题作为假阳性。
Delect selected issues
删除选定问题。请注意,如果你删除了一个问题,Burp重新发现了同样的问题(例如,如果你重新扫描了同样的要求),那么问题将再次报告。相反,如果你是一个假阳性标记的问题,那么这将不会发生。因此,最适合用于清理扫描结果移除你不感兴趣。对于内部的功能不需要您的问题仍然工作在主机或路径删除的问题,您应该使用假阳性的选项。
Scan Queue
Active Scanning(主动扫描)过程通常包括发送大量请求到服务器为所扫描的每个基本的请求,这可能是一个耗时的过程。当您发送的主动扫描请求,这些被添加到活动扫描队列,它们被依次处理。如图
扫描队列中显示每个项目的详细信息如下:
1)索引号的项目,反映该项目的添加顺序。
2)目的地协议,主机和URL 。
3)该项目的当前状态,包括完成百分比。
4)项目扫描问题的数量(这是根据所附的最严重问题的重要性和彩色化) 。
5)在扫描项目的请求数量进行。
注意 这不是插入点的数量的线性函数 - 观察应用程序行为的反馈到后续攻击的请求,仅仅因为它会为一个测试仪。
6)网络错误的数目遇到的问题。
7)为项目创建的插入点的数量。
这些信息可以让您轻松地监控个别扫描项目的进度。如果您发现某些扫描进度过于缓慢,可以理解的原因,如大量的插入点,缓慢的应用响应,网络错误等给定这些信息,你就可以采取行动来优化你的扫描,通过改变配置为插入点时,扫描引擎,或正在测试的主动扫描区域。
你可以双击任何项目在扫描队列显示,到目前为止发现的问题,并查看了基本请求和响应的项目。您可以使用扫描队列的上下文菜单来执行各种操作来控制扫描过程。确切的可用选项取决于所选的项目(S
)的状态,并包括:如下图所示
Show details
这将打开显示到目前为止发现的问题的一个窗口,与底座请求和响应的项目。
Scan again
此复制所选择的项目(S ) ,并将这些队列的末尾。
Delete item(S)
这将永久地从队列中删除选定的项目(S ) 。
Delect finished items
这永久删除那些已经完成了队列中的任何项目。
Automatically delete finished items
这是否切换扫描器会自动从队列为他们完成删除项目。
Pause/resume scanner
这可以暂停和恢复激活扫描仪。如果任何扫描正在进行时,扫描会暂停,而挂起的扫描请求完成后,通常会有一个短暂的延迟。
Send to
这些选项用于所选项目的基本请求发送到其它Burp(Repeater、Intruder)工具。
Live Scanning
实时扫描可让您决定哪些内容通过使用浏览器的目标应用,通过BurpProxy服务器进行扫描。您可以实时主动扫描设定live
active scanning和live passive两种扫描模式。如图
Live active scanning
执行现场主动扫描,请执行以下步骤:
1)配置与目标的细节,你要主动扫描现场主动扫描设置。如果你已经配置了一套全范围的目标为你目前的工作,那么你可以简单地通知Burp主动扫描落在该范围内的每个请求。或者,您可以使用URL匹配规则定义自定义范围。
2)各地通过BurpProxy通常的方式应用浏览。这将有效地展示Burp要扫描的应用功能。对于每一个独特的所在范围的要求,你通过你的浏览器,Burp会排队主动扫描请求,并将努力走在后台找到漏洞为您服务。
Live Passive Scanning
现场演示被动扫描,请执行以下步骤:
1)配置具有您要被动地扫描目标的细节live passive scanning。默认情况下,Burp执行所有请求的被动扫描,但你可以限制扫描目标范围,或者使用URL匹配规则的自定义范围。
2)通过BurpProxy通常的方式应用浏览。这将有效地展示Burp你要扫描的应用功能。
Options
此选项卡包含Burp扫描选项进行攻击的插入点,主动扫描引擎,主动扫描优化,主动扫描区和被动扫描区域。
Attack Insertion Points
这些设置控制扫描仪的地方“插入点(insertion points)”到被发送的主动扫描每个基本要求。插入点攻击将被放置,探测漏洞请求中的位置。每个定义的插入点单独扫描。
BurpSuite为您提供细粒度地控制放置插入点,以及这些选项仔细配置会让您量身定制您的扫描到您的目标应用程序的性质。插入点的配置也代表你的扫描速度和全面性之间进行权衡。
注:除了让Burp自动指定插入点,就可以完全自定义这些,这样你就可以在你想要攻击的地方放在任意一个位置。要使用此功能,将请求发送给Intruder,用payload
positions标签来定义通常的方式各插入点的开始和结束,并选择入侵者菜单选项“积极定义扫描插入点”
。您也可以指定以编程方式使用Burp扩展的自定义插入点位置。
1)Insertion Point Locations
这些设定可让您选择,其中插入点应放在请求中的位置的类型:
URLparameter values - URL查询字符串中标准的参数值。
Body parameter values - 在邮件正文中,包括标准形式生成的参数参数值,属性的多重编码的参数,如上传的文件名,
XML参数值和属性,和JSON值。
Cookieparameter values - 的HTTP Cookie的值。
Parameter name - 任意添加的参数的名称。 URL参数总是被添加,并且机身参数也加入到POST请求。测试一个附加的参数名称通常可以检测到被错过,如果只是参数值进行了测试异常的错误。
HTTPheaders - 在引用页和用户代理标头的值。测试这些插入点通常可以检测如SQL注入或跨站脚本持续在日志记录功能的问题。
AMF string parameters- 内AMF编码的邮件的任何字符串数据的值。
REST-style URL parameters - URL的文件路径部分中的所有目录和文件名令牌的值。测试每一个插入点可以并处显著开销,如果你相信应用程序使用这些位置传送参数数据,才应使用。
2)Change Parameter Locations
允许您配置扫描仪将一些类型的插入点到其他地点的请求中,除了测试他们在原来的位置。例如,您可以将每个URL参数到邮件正文中,并重新测试它。或者你可以移动身体的每个参数到一个cookie
,然后重新测试它。
用这种移动参数方式往往可以绕过防过滤器。许多应用程序和应用程序防火墙执行每个参数输入验证假设每个参数是它的预期位置的要求之内。移动参数到不同的位置可以回避这个验证。当应用程序代码后检索参数来实现其主要的逻辑,它可能会使用一个API,它是不可知的,以参数的位置。如果是这样,那么移动的参数可能可以使用输入,通常会在处理之前被过滤,以达到易受攻击的代码路径。
下列选项可用于更改参数的位置:
URL to body
URL to cookie
Body to URL
Body to cookie
Cookie to URL
Cookie to body
3)Nested Insertion Points
嵌套的插入时,会使用一个插入点的基值包含可识别的格式的数据。 例如,一个URL参数可能包含Base64编码数据,并且将解码后的值可能又包含JSON或XML数据。与使用启用嵌套插入点的选项,Burp会为输入在每个嵌套级别中的每个单独的项目适合的插入点。
Spider仅包含常规的请求参数请求时使用此选项不征收费用,但允许Burp达到更复杂的应用,数据是在不同的格式封装的攻击面。
4)Maximum Insertion Points Per Request
无论你的设置选择,对于单个请求插入点的数目,一般视乎该请求的功能,如参数的数目。偶尔,请求可以包含的参数(几百或更多)数量。如果Burp执行的每个参数进行完全扫描,扫描会花费过多的时间量完成。
此设置允许您设置的,将每个基本要求生成插入点的数量的限制,从而防止您的扫描由偏快转为停滞,如果他们遇到含参数庞大的数字请求。在其中插入点的数量是由这个限制缩减的情况下,在有效扫描队列中的项目的条目将显示被跳过的插入点的数量,使您能够手动检查基本要求,并决定是否值得执行完全扫描其所有可能的插入点。
5)Skipping Parameters
设定让您指定请求参数的Burp应该跳过某些测试。有跳过服务器端注入测试(如SQL注入)和跳过所有检查单独的列表。
服务器端注入测试是比较费时的,因为Burp发送多个请求探测服务器上的各种盲目的漏洞。如果您认为出现请求中的某些参数不容易(例如,内置仅由平台或Web服务器中使用的参数)
,你可以告诉Burp不能测试这些。 (用于测试客户端蝽象跨站点脚本涉及更少的开销,因为测试每个参数规定最小的开销在扫描期间,如果该参数不容易。
) 如果一个参数是由您不希望测试一个应用程序组件来处理,或者修改一个参数是已知的导致应用程序不稳定跳过所有的测试可能是有用的。
列表中的每个项目指定参数类型,该项目要匹配(名称或值) ,匹配类型(文本字符串或正则表达式) ,表达式匹配。
你可以通过它们的位置(斜线分隔)的URL路径中标识的REST参数。要做到这一点,从参数下拉,“姓名”,从项目下拉“
REST参数” ,并指定您希望从测试中排除的URL路径中的位置的索引号(从1开始) 。您还可以通过值来指定REST参数。
|