Burp Suite基础
- 一、Burp Suite安装和环境配置
- 如何命令行启动Burp Suite
- 二、Burp Suite代理和浏览器设置
- FireFox设置
- 三、如何使用Burp Suite代理
- 1、Burp Proxy基本使用
- 2、数据拦截与控制
- 3、可选项配置Options
- 客户端请求消息拦截
- 服务器端返回消息拦截
- 服务器返回消息修改
- 正则表达式配置
- 其他配置项
- 4、历史记录History
- 四、SSL和Proxy高级选项
- 1、CA证书安装
- 2、Proxy监听设置
- 五、如何使用Burp Target
- 1、目标域设置Target Scope
- 2、站点地图Site Map
- 3、Target工具的使用
一、Burp Suite安装和环境配置
如何命令行启动Burp Suite
Burp Suite是一个无需安装软件,下载完成后,直接从命令行启用即可。但Burp Suite是用Java语言开发的,运行时依赖于JRE,需要提前Java可运行环境。如果没有配置Java环境或者不知道如何配置的童鞋请参考win7电脑上的Java环境配置 配置完Java环境之后,首先验证Java配置是否正确,如果输入iava -version 出现下图的结果,证明配置正确且已完成。
这时,你只要在cmd里执行java jar /your burpsuite path/burpSuite.jar即可启动Burp Suite,或者,你将BurpSuite的jar放入class path目录下,直接执行java -jar burpSuite.jar也可以启动。注意:your burpsuite path为你Burp Suite所在路径,burpSuite.jar文件名必须跟你下载的iar文件名称一致
二、Burp Suite代理和浏览器设置
Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等·Burp Suite主要拦截http和https协议的流量,通过拦截,BurpSuite以中间人的方式,可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测试的目的。
在日常工作中,我们最常用的web客户端就是的web浏览器,我们可以通过代理的设置,做到对web浏览器的流量拦截,并对经过Burp Suite代理的流量数据进行处理。
下面我们就分别看看IE、Firefox、Google Chrome下是如何配置Burp Suite代理的。
FireFox设置
这里我是用的是下图版本,不过使用思路是一样的
在FireFox中,我们也要进行一些参数设置,才能将FireFox浏览器的通信流量,通过Burp Suite代理进行传输。详细的步骤如下:
1、启动FireFox浏览器,点击这里
2、点击新建代理服务器
3、添加新建的代理服务器
填写IP地址为127.0.0.1环回地址,端口号填8080,完成FireFox的代理。(Burp默认监听自身8080端口)
4、停止拦截放通之后可以访问http://burp测试
可以看到欢迎界面。
当然,FireFox浏览器中,可以添加FireFox的扩展组件,对代理服务器进行管理。例如FireX Proxy、Proxy Swither都是很好用的组件,感兴趣的读者可以自己下载试用一下。
其他路由器同样思路的代理服务器的配置。
三、如何使用Burp Suite代理
Burp Proxy 是Burp Suite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截查看、修改所有在客户端和服务端之间传输的数据。
本章主要讲述以下内容 :
- Burp Proxy基本使用
- 数据拦截与控制
- 可选项配置Options
- 历史记录History
1、Burp Proxy基本使用
BurpProxy的使用是一个循序渐进的过程,刚开始使用时,可能并不能很快就获取你所期望的结果,慢慢地当你熟悉了它的功能和使用方法,你就可以用它很好地对一个产品系统做安全能力评估。一般使用Burp Proxy时,大体涉及环节如下 :
- 1、首先,确认JRE已经安装好,Burp Suite可以启动并正常运行,且已经完成浏览器的代理服务器配置。
- 2、打开Proxy功能中的Intercept选项卡,确认拦截功能为“Interception is on”状态,如果显示为“Intercept is off”则点击它,打开拦截功能。
- 3、打开浏览器,输入你需要访问的URL(以http:/baidu.com/为例) 并回车,这时你将会看到数据流量经过Burp Proxy并暂停,直到你点击[Forward],才会继续传输下去。如果你点击了[Drop] ,则这次通过的数据将会被丢失,不再继续处理。
- 4、当我们点击[Forward] 之后,我们将看到这次请求返回的所有数据。
- 5、当Burp Suite拦截的客户端和服务器交互之后,我们可以在Burp Suite的消息分析选项卡中查看这次请求的实体内容、消息头、请求参数等信息。消息分析选项视图主要包括以下四项 :
-
- Raw 这是视图主要显示web请求的raw格式,包含请求地址、htp协议版本、主机头、浏览器信息、Accept可接受的内容类型 、字符集、编码方式、cookie等。你可以通过手工修改这些信息,对服务器端进行渗透测试。
-
- params 这个视图主要显示客户端请求的参数信息、包括GET或者POST请求的参数、Cookie参数。渗透人员可以通过修改这些请求参数来完成对服务器端的渗透测试。
-
- headers 这个视图显示的信息和Raw的信息类似,只不过在这个视图中,展示得更直观、8友好。
-
- Hex 这个视图显示Raw的二进制内容,你可以通过hex编辑器对请求的内容进行修改。
默认情况下,Burp Proxy只拦截请求的消息,普通文件请求如CSS、jS、图片是不会被拦截的,你可以修改默认的拦截选项来拦截这些静态文件,当然,你也可以通过修改拦截的作用域、参数或者服务器端返回的关键字来控制Burp Proxy的消息拦截,这些在后面的章节中我们会进一步的学习。所有流经Burp Proxy的消息,都会在http history记录下来,我们可以通过历史选项卡,查看传输的数据内容,对交互的数据进行测试和验证。同时,对于拦截到的消息和历史消息,都可以通过右击弹出菜单,发送到Burp的其他组件,如Spider、ScannerRepeater、Intruder、Sequencer、 Decoder、Comparer、Extender,进行进一步的测试。如下图所示 :
2、数据拦截与控制
Burp Proxy的拦截功能主要由Intercept选项卡中的Forward、Drop、Interception is on/offAction、Comment 以及Highlight构成,它们的功能分别是:
- Forward的功能是当你查看过消息或者重新编辑过消息之后,点击此按钮,将发送消息至服务器端。
- Drop的功能是你想丢失当前拦截的消息,不再forward到服务器端。
- Interception is on表示拦截功能打开,拦截所有通过Burp Proxy的请求数据 ;
- lnterception is off表示拦截功能关闭,不再拦截通过BurpProxy的所有请求数据。
- Action的功能是除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外,还可以做一些请求消息的修改,如改变GET或者POST请求方式、改变请求body的编码,同时也可以改变请求消息的拦截设置,如不再拦截此主机的消息、不再拦截此I地址的消息、不再拦截此种文件类型的消息、不再拦截此目录的消息,也可以指定针对此消息拦截它的服务器端返回消息。
- Comment的功能是指对拦截的消息添加备注,在一次渗透测试中,你通常会遇到一连串的请求消息,为了便于区分,在某个关键的请求消息上,你可以添加备注信息。
Highlight的功能与Comment功能有点类似,即对当前拦截的消息设置高亮,以便于其他的请求消息相区分。
除了Intercept中可以对通过Proxy的消息进行控制外,在可选项设置选项卡Options中也有很多的功能设置也可以对流经的消息进行控制和处理。
3、可选项配置Options
当我们打开可选项设置选项卡Options,从界面显示来看,主要包括以下几大板块 (涉及https的功能不包含在本章内容里,后面会一章专门叙述) :
- 客户端请求消息拦截
- 服务器端返回消息拦截
- 服务器返回消息修改
- 正则表达式配置
- 其他配置项
客户端请求消息拦截
客户端请求消息拦截是指拦截客户端发送到服务器端消息的相关配置选项,其界面如下:
主要包含拦截规则配置、错误消息自动修复、自动更新Content-Length消息头三个部分。
- 1、如果intercept request based on the follow rules的checkbox被选中,则拦截所有符合选按钮下方列表中的请求规则的消息都将被拦截,拦截时,对规则的过滤是自上而下进行的。当然,我们可以根据自己的需求,通过[Up]和(Down] 按钮,调节规则所在位置和排序。同时,我们可以点击[Add] 添加一条规则,也可以选中一条规则,通过点击[Edit] 进行编辑、点击[Remove] 进行删除·当我们点击[Add] 按钮时,会弹出规则添加的输入对话框,如下图 :
拦截规则添加时,共包含4个输入项·Boolean opertor表示当前的规则与其他规则是与的方式 (And) 还是或的方式(Or) 共存 ; Match type表示匹配类型,此处匹配类型可以基于域名、IP地址、协议、请求方法、URL、文件类型、参数,cookies,头部或者内容,状态码,MIME类型,HTML页面的title等。Match relationship表示此条规则是匹配还是不匹配Match condition输入的关键字。当我们输入这些信息,点击OK按钮,则规则即被保存。 - 2、如果Automatically fix missing的checkbox被选中,则表示在一次消息传输中,Burp Suite会自动修复丢失或多余的新行。比如说,一条被修改过的请求消息,如果丢失了头部结束的空行,Burp Suite会自动添加上 ; 如果一次请求的消息体中,URl编码参数中包含任何新的换行,Burp Suite将会移除·此项功能在手工修改请求消息时,为了防止错误,有很好的保护效果。
- 3、如果Automatically update Content-Length的checkbox被选中,则当请求的消息被修改后,Content-Length消息头部也会自动被修改,替换为与之相对应的值。
服务器端返回消息拦截
服务器端返回消息拦截顾名思义是指拦截服务器端返回的消息的相关配置项,其界面如下:
它的功能主要包含intercept response based on the follow rules和Automatically update Content-Length header when the response edited两个选项,其功能分别与客户端请求消息拦截中的intercept request based on the follow rules、Automatically update Content-Length header when the request edited相对应,就不在赘述,请参上一节的内容。
服务器返回消息修改
服务器返回消息修改是指自动修改服务器端返回消息的相关设置项。其界面如下:
一个选择项分别对应的功能是
- 显示form表单中隐藏字段
- 高亮显示form表单中隐藏字段
- 使form表单中的disable字段生效,变成可输入域
- 移除输入域长度限制
- 移动JavaScript验证
- 移动所有的JavaScript
- 移除标签
- 转换https超链接为http链接
- 移除所有cookie中的安全标志
通过服务器返回消息修改可选择项的设置,可以方便渗透测试人员在安全评估过程中突破原有的数据限制,更好、更快地检测服务器端的安全性。
正则表达式配置
此项配置主要用来自动替换请求消息和服务器端返回消息中的某些值和文本,它与前文的规则的不同之处还在于支持正则表达式语言。
当点击 (Add) 按钮时,在弹出的匹配或替换规则输入对话框中我们可以看到,它可以对请求和返回消息的消息头,消息体、请求参数名、请求参数值、请求的第一行进行匹配和替换。
其他配置项
其他配置项主要是杂项设置。其界面如下:
自上而下依次的功能是:
- 指定使用HTTP/1.0协议与服务器进行通信 这项设置用于强制客户端采用HTTP/1.0协议与服务器进行通信,一般客户端使用的HTTP协议版本依赖于客户端浏览器,但某些服务器或者应用,必须使用HTTP/1.0协议,此时可幻选此项
- 指定使用HTTP/1.0协议反馈消息给客户端 目前所有的浏览器均支持HTTP/1.0协议和HTTP/1.1协议,强制指定HTTP/1.0协议主要用于显示浏览器的某些方面的特征,比如,阻止HTTP管道攻击。
- 设置返回消息头中的“Connection : close”可用于某些情况下的阻止HTTP管道攻击。
- 请求消息头中脱掉Proxy-* 浏览器请求消息中,通常会携带代理服务器的相关信息,此选项主要用于清除消息头中的代理服务器信息。
- 解压请求消息中的压缩文件 某些应用在与服务器端进行交互时,会压缩消息体,勾选此选项,则Burp Suite 会自动解压消息体
- 解压返回消息中的压缩文件 大多数浏览器支持压缩的消息体,勾选此选项,则BurpSuite 会自动解压被服务器端压缩的消息体
- 禁用http://burp
- 允许通过DNS和主机名访问web接口 即允许通过域名或主机名访问Burp Suite
- 不在浏览器中显示Burp Suite错误 在我们使用Burp Suite时,如果发生了Burp Suite自身的错误,会在浏览器中显示,如果勾选了此项,则不会在浏览器中显示此类错误。
- 禁用日志到历史和网站地图中 此选项的作用是阻止记录日志到历史和网站地图,在某些情况下可能有用,比如说,通过上游服务器进行认证或者做正则表达式替换时,为了降低内存的消耗,减少日志的储存,你可以勾选此项。
- 拦截功能开始设置
这个选项主要用来配置intercept功能的生效方式,分为总是生效 、总是失效、从上一次的Burp Suite中恢复设置3种方式。
4、历史记录History
Burp Proxy的历史记录由HTTP历史和WebSockets历史两个部分组成。
HTTP历史界面由筛选过滤器、历史记录列表、消息详情3个部分组成。
当我们在某一条历史记录上单击,会在下方的消息详解块显示此条消息的文本详细信息。当我们在某条消息上双击,则会弹出此条消息的详细对话框。
我们可以点击对话框右上方的【Previous】、【Next】按钮,浏览上一条或下一条消息的内容,也可以修改Raw的请求参数,然后执行多种【Action】操作。
历史消息列表中主要包含请求序列号、请求协议和主机名、请求的方式、URL路径、请求参数、Cookie、是否用户编辑过消息、服务器端返回的HTTP状态码等信息。通过这些信息,我们可以对一次客户端与服务器端交互的HTTP消息详情做出准确的分析,同时,在下方的详情视图中,也提供基于正则表达式方式的匹配查找功能,更好的方便渗透测试人员查找消息体中的相关信息。
当我们在做产品系统的安全评估过程中,会在HTTP历史中保存了大量的日志记录,为了更友好的消息管理,Burp提供了筛选过滤器功能。当我们点击HTTP历史标签下发的Filter时,将弹出筛选过滤器界面。
按照过滤条件的不同,筛选过滤器划分出7个子板块,分别是
- 按照请求类型过滤 你可以选择仅显示当前作用域的、仅显示有服务器端响应的和仅显示带有请求参数的消息。当你勾选“仅显示当前作用域”时,此作用域需要在Burp Target的Scope选项中进行配置,详细请阅读Burp Target相关章节。
- 按照MIME类型过滤 你可以控制是否显示服务器端返回的不同的文件类型的消息,比如只显示HTML、Css或者图片·此过滤器目前支持HTML、Script、XML、CSS、其他文本图片、Flash、二进制文件 8种形式。
- 按照服务器返回的HTTP状态码过滤 Burp根据服务器的状态码,按照2XX,3XX.4XX.5XX分别进行过滤。比如,如果你只想显示返回状态码为200的请求成功消息,则勾选2XX
- 按照查找条件过滤 此过滤器是针对服务器端返回的消息内容,与输入的关键字进行匹配,具体的匹配方式,你可以选择 1,正则表达式 2.大小写敏感 3.否定查找 3种方式的任何组合,前面两种匹配方式容易理解,第3种匹配方式是指与关键字匹配上的将不再显示。
- 按照文件类型过滤 通过文件类型在过滤消息列表,这里有两个选择可供操作。一是仅仅显示哪些,另一个是不显示哪些。如果是仅仅显示哪些,在show only的输入框中填写显示的文件类型,同样,如果不显示哪些文件类型,只要在hide的输入框中填写不需要显示的文件类型即可。
- 按照注解过滤 此过滤器的功能是指,根据每一个消息拦截时候的备注或者是否高亮来作为筛选条件控制哪些消息在历史列表中显示。
- 按照监听端口过滤 此过滤器通常使用于当我们在Proxy Listeners中多个监听端口时,仅仅显示某个监听端口通信的消息,一般情况下,我们很少用到。
现在,我们再看看WebSockets历史选项的功能,从界面上我们可以看出,WebSockets历史所提供的功能和选项是HTTP历史的一个子集,只是因为采用的通信方式的不同,而被独立出来成为一个专门的视图。其功能的使用方式与HTTP历史雷同,此处就不在赘述。
通过本章的学习,你对Burp Suite的代理模式有了更深入的理解,知道了作为中间人的BurpProxy在消息拦截过程中,可以对请求消息、应答消息做多方面的修改,并可以把消息传递给Burp的其他组件做进一步的测试·同时,Burp Proxy的历史日志功能和多种筛选过滤器让我们在使用中,能快速地查找需要的数据和关键信息,这些,都极大地帮助你提高了工作效率。
四、SSL和Proxy高级选项
HTTPS协议是为了数据传输安全的需要,在HTTP原有的基础上,加入了安全套接字层SSL协议,通过CA证书来验证服务器的身份,并对通信消息进行加密·基于HTTPS协议这些特性,我们在使用Burp Proxy代理时,需要增加更多的设置,才能拦截HTTPS的消息。
本章包含的主要内容有
- CA证书的安装
- CA证书的卸载
- Proxy监听设置
- SSL直连和隐形代理设置0
我们都知道,在HTTPS通信过程中,一个很重要的介质是CA证书,下面就我们一起来看看Burp Suite中CA证书的安装。
1、CA证书安装
一般来说,Burp Proxy代理过程中的CA主要分为如下几个步骤 (以win7下IE9为例)
- 1、首先,根据前三章内容的学习,你已配置好Burp Proxy监听端口和IE的代理服务器设置。其次,你的IE浏览器中没有安装过Burp Suite的CA证书,如果已经安装,请先卸载证书。详细的卸载方法请参考CA证书的卸载章节。
- 2、以管理员身份,启动lE浏览器,在地址栏输入http://burp并回车,进入证书下载页面
- 3、点击上图所示的证书下载,另存为本地目录
- 4、点击工具,选项、点击高级,证书
- 5、点击查看证书
- 6、点击导入
- 7、关闭、重启浏览器,CA证书配置完成
然后访问就不会出现安全警告.
2、Proxy监听设置
当我们启动Burp Suite时,默认会监听本地回路地址的8080端口,除此之外,我们也可以在默认监听的基础上,根据我们自己的需求,对监听端口和地址等参数进行自由设置。特别是当我们测试非浏览器应用时,无法使用浏览器代理的方式去拦截客户端与服务器端通信的数据流量,这种情况下,我们会使用自己的Proxy监听设置,而不会使用默认设置。
Proxy监听设置
当我们在实际使用中,可能需要同时测试不同的应用程序时,我们可以通过设置不同的代理端口,来区分不同的应用程序,Proxy监听即提供这样的功能设置。点击图中的[Add] 按钮,会弹出Proxy监听设置对话框,里面有更丰富的设置,满足我们不同的测试需求。
Proxy监听设置主要包含3块功能:
- 1、端口和IP绑定设置Binding 绑定的端口port是指Burp Proxy代理服务监听的端口,绑定IP地址分仅本地回路、所有接口、指定地址三种模式,在渗透测试中,无论你选择哪种模式,你需要明白一点,当你选择的非本地回路IP地址时,同局域网内的其他电脑也可以访问你的监听地址。
- 2、请求处理Request Handling 请求处理主要是用来控制接受到Burp Proxy监听端口的请求后,如果对请求进行处理的。
其具体配置可分为 : 端口的转发、主机名/域名的转发、强制使用SSL和隐形代理4个部分。当我们配置了端口的转发时,所有的请求都会被转发到这个端口上;如果我们配置了主机或域名的转发,则所有的请求会转发到指定的主机或域名上。同时,我们可以指定,通过Burp Proxy的消息是否强制使用SSL,如果设置了此项,则请求若是http协议,经Burp proxy代理后将转换为https协议。隐形代理主要是用于测试富客户端应用或者是非浏览器代理方式的应用,当我们设置了它,访问这些应用时,将通过非代理的方式,直接连接Burp Proxy的监听端口。 - 3、SSL 证书 这些设置控制呈现给SSL客户端的服务器SSL证书。可以解决使用拦截代理时出现的一些SSL问题: 1.您可以消除您的浏览器的SSL警报,并需要建立SSL例外。其中,网页加载来自其他域的SSL保护的项目,可以确保这些正确的加载到浏览器,而不需要为每个域手动接受代理的SSL证书。2.可以与该拒绝无效的SSL证书连接到服务器胖客户机应用程序的工作。 它有下列选项可供设置 :
- 4、使用自签名证书(Use a self-signed certificate )- 一个简单的自签名SSL证书呈现给您的浏览器,它总是会导致SSL警告。
- 5、生成每个主机的CA签名证书 (Generate CA-signed per-host certificates)- 这是默认选项。在安装时,Burp创造了一个独特的自签名的证书颁发机构 (CA) 证书,并将此计算机上使用。当你的浏览器发出的SSL连接指定主机,Burp生成该主机的SSL证书,由CA证书签名。您可以安装Burp的CA证书作为浏览器中的受信任的根,从而使每个主机证书没有任何警报接受。
- 6、生成与特定的主机名CA签发的证书 (Generate a CA-signed certificate with a specific6.hostname)—是类似于前面的选项;不同的是,Burp会生成一个主机证书与每一个SSL连接使用,使用指定的主机名。
- 7、使用自定义证书(Use a custom certificate)- 此选项可以加载一个特定的证书(在7PKCS# 12格式) 呈现给浏览器。如果应用程序使用这需要一个特定的服务器证书(例如,与给定的序列号或证书链) 的客户端应该使用这个选项。
五、如何使用Burp Target
Burp Target 组件主要包含站点地图、目标域、Target 工具三部分组成,他们帮助渗透测试人员更好地了解目标应用的整体状况、当前的工作涉及哪些目标域、分析可能存在的攻击面等信息,下面我们就分别来看看Burp Target的三个组成部分。
本章的主要内容有 :
- 目标域设置 Target Scope
- 站点地图 Site Map
- Target 工具的使用
1、目标域设置Target Scope
Target Scope中作用域的定义比较宽泛,通常来说,当我们对某个产品进行渗透测试时,可以通过域名或者主机名去限制拦截内容,这里域名或主机名就是我们说的作用域;如果我们想限制得更为细粒度化,比如,你只想拦截login目录下的所有请求,这时我们也可以在此设置,此时,作用域就是目录·总体来说,Target Scope主要使用于下面几种场景中:
- 限制站点地图和Proxy 历史中的显示结果
- 告诉Burp Proxy 拦截哪些请求
- Burp Spider抓取哪些内容.
- Burp Scanner自动扫描哪些作用域的安全漏洞
- 在Burp Intruder和Burp Repeater 中指定URL
通过Target Scope 我们能方便地控制Burp 的拦截范围、操作对象,减少无效的噪音。在Target Scope的设置中,主要包含两部分功能:允许规则和去除规则。
其中允许规则顾名思义,即包含在此规则列表中的,视为操作允许、有效。如果此规则用于拦截,则请求消息匹配包含规则列表中的将会被拦截; 反之,请求消息匹配去除列表中的将不会被拦截。从上图的添加规则对话框中我们可以看出,规则主要由协议、域名或IP地址、端口、文件名4个部分组成,这就意味着我们可以从协议、域名或IP地址、端口、文件名4个维度去控制哪些消息出现在允许或去除在规则列表中。
当我们设置了Target Scope (默认全部为允许),使用Burp Proxy进行代理拦截,在渗透测试中通过浏览器代理浏览应用时,Burp会自动将浏览信息记录下来,包含每一个请求和应答的详细信息,保存在Target站点地图中。
2、站点地图Site Map
下图所示站点地图为一次渗透测试中,通过浏览器浏览的历史记录在站点地图中的展现结果。
从图中我们可以看出,Site Map的左边为访问的URL,按照网站的层级和深度,树形展示整个应用系统的结构和关联其他域的url情况; 右边显示的是某一个url被访问的明细列表,共访问哪些ur,请求和应答内容分别是什么,都有着详实的记录。 基于左边的树形结构,我们可以选择某个分支,对指定的路径进行扫描和抓取。
除了加入 Target Scope外,从上图中,我们也可以看到,对于站点地图的分层,可以通过折叠和展开操作,更好的分析站点结构。
3、Target工具的使用
Target 工具的使用的使用主要包括以下部分 :
- 手工获取站点地图
- 站点比较
- 攻击面分析
当我们手工获取站点地图时,需要遵循以下操作步骤 : 1.设置浏览器代理和Burp Proxy代理,并使之能正常工作。2.关闭Burp Proxy的拦截功能。3.手工览网页,这时,Target会自动记录站点地图信息 。 手工获取站点地图的方式有一个好处就是,我们可以根据自己的需要和分析,自主地控制访问内容,记录的信息比较准确。与自动抓取相比,则需要更长的时间,如果需要渗透测试的产品系统是大型的系统,则对于系统的功能点依次操作一遍所需要的精力和时间对渗透测试人员来说付出都是很大的。
站点比较是一个Burp提供给渗透测试人员对站点进行动态分析的利器,我们在比较帐号权限时经常使用到它。当我们登陆应用系统,使用不同的帐号,帐号本身在应用系统中被赋予了不同的权限,那么帐号所能访问的功能模块、内容、参数等都是不尽相同的,此时使用站点比较,能很好的帮助渗透测试人员区分出来。一般来说,主要有以下3种场景 : 1.同一个帐号,具有不同的权限,比较两次请求结果的差异。 2.两个不同的帐号,具有不同的权限,比较两次请求结果的差异。3.两个不同的帐号,具有相同的权限,比较两次请求结果的差异。
下面我们就一起来看看如何进行站点比较。
- 1.首先我们在需要进行比较的功能链接上右击,找到站点比较的菜单,点击菜单进入下一步。
- 2.由于站点比较是在两个站点地图之间进行的,所以我们在配置过程中需要分别指定Site Map1和Site Map2。通常情况下,Site Map 1 我们默认为当前会话。如图所示,点击【Next】。
- 3.这时我们会进入Site Map 1 设置页面,如果是全站点比较我们选择第一项,如果仅仅比较我们选中的功能,则选择第二项。如下图,点击【Next】。如果全站点比较,且不想加载其他域时,我们可以勾选只选择当前域。
- 4.接下来就是Site Map 2 的配置,对于Site Map 2我们同样有两种方式,第一种是之前我们已经保存下来的Burp Suite 站点记录,第二种是重新发生一次请求作为Site Map2.这里,我们选择第二种方式。
- 5.如果上一步选择了第二种方式,则进入请求消息设置界面。在这个界面,我们需要指定通信的并发线程数、失败重试次数、暂停的间隙时间。
- 6.设置完Site Map 1 和Site Map 2之后,将进入请求消息匹配设置。在这个界面,我们可以通过URL文件路径、Http请求方式、请求参数、请求头、请求Body来对匹配条件进行过滤。
- 7.设置请求匹配条件,接着进入应答比较设置界面。在这个界面上,我们可以设置哪些内容我们指定需要进行比较的。从下图我们可以看出,主要有响应头、form表单域、空格、MIME类型。点击【Next】。
- 8.如果我们之前是针对全站进行比较,且是选择重新发生一次作为Site Map2的方式,则界面加载过程中会不停提示你数据加载的进度,如果涉及功能请求的链接较少,则很快进入比较界面。如下图。
- 9.从上图我们可以看到,站点比较的界面上部为筛选过滤器 (这个过滤器与其他过滤器使用雷同,此处不再赘述),下部由左、中、右三块构成。左边为请求的链接列表,中间为SiteMap 1和Site Map 2的消息记录,右边为消息详细信息·当我们选择Site Map 1某条消息记录时,默认会自动选择Site Ma 2与之对应的记录,这是有右上角的(同步选择] 勾选框控制的,同时,在右边的消息详细区域,会自动展示Site Map 1与Site Map 2通信消息的差异,包含请求消息和应答消息,存在差异的地方用底色标注出来。
攻击面分析是Burp Suite 交互工具 (Engagement tools) 中的功能,这里我们先看看AnalyzeTarget使用,其他的功能会在高级使用相关章节讲述。
- 1.首先,我们通过站点地图,打开Analyze Target,如图所示。
- 2.在弹出的分析界面中,我们能看到概况、动态URL、静态URL、参数4个视图。
- 3.概况视图主要展示当前站点动态URL数量、静态URL数量、参数的总数、唯一的参数名数目,通过这些信息,我们对当前站点的总体状况有粗线条的了解。4.动态URL视图展示所有动态的URL请求和应答消息,跟其他的工具类似,当你选中某一条消息时,下方会显示此消息的详细信息。
- 5.静态URL视图与动态URL视图类似,如图.
- 6.参数视图有上中下三部分组成,上部为参数和参数计数统计区,你可以通过参数使用的次数进行排序,对使用频繁的参数进行分析;中部为参数对于的使用情况列表,记录对于的参数每一次的使用记录;下部为某一次使用过程中,请求消息和应答消息的详细信息。
在使用攻击面分析功能时,需要注意,此功能主要是针对站点地图中的请求URL进行分析如果某些URL没有记录,则不会被分析到。同时,在实际使用中,存在很点站点使用伪静态,如果请求的URL中不带有参数,则分析时无法区别,只能当做静态URL来分析。