Burp Suite第十五节:BurpSuite全局参数设置和使用

在Burp Suite中,存在一些粗粒度的设置,这些设置选项,一旦设置了将会对Burp Suite的整体产生效果,这就是Burp Suite中Options面板。当我们打开Options面板即可看到,它是由Connections、HTTP、SSL、Sessions、Display、Misc,六个选项卡组成。

本节的内容主要包括:

  • Burp 网络连接设置(Connections)
  • HTTP应答消息处理设置(HTTP)
  • SSL连接和加密设置(SSL)
  • 会话设置(Sessions)
  • 显示设置(Display)
  • 其它工具设置(Misc)

下面我们就依次来看看每一个选项卡包含哪些详细的功能设置。

Burp 网络连接设置(Connections)

Connections选项卡主要用来控制Burp如何来处理平台认证、上游代理服务器、Socks代理、超时设置、主机名或域名解析以及Scope之外的请求六个方面的相关配置。当我们打开Connections选项卡,从上往下拖动,首先看到的设置将是平台身份认证(Platform Authentication)。

1.平台身份认证(Platform Authentication)

这些设置允许你配置Burp自动执行到目标Web服务器的平台身份验证,不同的主机可以配置不同的认证方式和证书。目前支持的身份验证类型有:BASIC,NTLMv1,NTLMv2和“摘要”式认证( Digest authentication)。其设置界面截图如下:

其中域名和主机名字段只用于NTLMv1,NTLMv2身份验证。 在平台身份认证(Platform Authentication)设置的最下方有一个Checkbox选项(Prompt for credentials on platform authentication failure),如果此项选中,则表示当遇到身份验证失败时,Burp会显示一个交互式的弹窗,提示验证失败的信息。

2.上游代理服务器(Upstream Proxy Servers)

这些设置主要是控制Burp是否会发送请求到上游代理服务器,或直转向目标Web服务器。从代理服务器配置的图中我们可以看出,这是一个列表,那就表明我们可以配置多个匹配规则。当我们配置了多个规则时,可以针对不同的目标主机或主机组指定不同的代理服务器设置。这些规则将按照顺序,并将与目标Web服务器相匹配的第一个规则作为生效规则。如果列表没有规则匹配,Burp默认采取直连、非代理的方式进行连接。 针对每一个配置,其界面截图如下:

我们可以使用在目标主机输入框中采用正则表达式,使用通配符(*零个或多个字符匹配?与任何字符相匹配,除了一个点)。来指定将所有请求发送到一个代理服务器。而对于配置的每个上游代理服务器,我们可以根据需要指定认证方式和认证凭据。它支持的身份认证类型有:BASIC,NTLMv1,NTLMv2和“摘要式”身份验证。同样,域名和主机名字段只用于NTLM身份认证。 当我们每配置完成一条匹配规则之后,它将出现在上游代理服务器的列表中,我们可以在列表中对其进行内容的编辑和上下顺序的调整。

3.Socks代理

这些设置允许我们配置Burp使用SOCKS代理的方式进行所有传出的通信,但此设置只在TCP层生效,所有出站请求将通过这个代理发送。如果我们同时设置了已游HTTP代理服务器配置的规则,则请求上游代理将通过这里配置的SOCKS代理发送。其请求的匹配路径依次是:本地-->上游代理-->SOCKS代理。 在使用SOCKS代理时,我们需要勾选【Use SOCKS proxy】,并提供代理的ip或者主机名、端口、认证的用户名和口令(如上图所示)。 如果我们勾选了【Do DNS lookups over SOCKS proxy】,则进行域名解析时,将通过SOCKS代理去查询,而不会使用本地缓存。

4.超时设置(Timeouts)

  • 这些设置主要用于指定Burp各种网络任务的超时。我们可以对以下超时项进行设置:
  • 正常(Normal ) - 此设置用于大多数网络通信,并确定Burp怎样放弃请求和记录已发生超时前等待。
  • 开放式应答(Open-ended responses) - 该设置只用在一个响应正在处理不包含内容长度或传输编码HTTP标头。在这种情况下,Burp确定传输已经完成之前等待指定的时间间隔。
  • 域名解析(Domain name resolution ) - 此设置确定Burp如何重新进行成功的域名查找,如果目标主机地址频繁变化时需要设定为一个适当的低的值。
  • 失败的域名解析(Failed domain name resolution ) - 此设置确定Burp多久会重新尝试不成功的域名查找。

以上的选项设置的值都是以秒为时间单位,如果一个选项留空,那么表示Burp永远不会超时。

5.主机名或域名解析

此项配置比较简单,通过这些设置,我们可以指定主机名映射到IP地址,来覆盖本地计算机提供的DNS解析。每个主机名解析规则需要指定主机名,并与主机名相关联的IP地址。同时,每一个规则可以单独启用或禁用来控制其是否生效。当我们在渗透测试中,如果使用了隐形代理来测试富客户端组件,此功能可以确保请求正确转发。

6.Scope之外的请求

这一特性可用于防止Burp发送任何超出Target面板中设置的Scope范围之外的请求,当我们需要保证没有请求到不在Scope范围内为它是有用的。例如,如果我们勾选了【Drop all out-of-scope requests】,即使你的浏览器使得超出范围的目标请求,这些请求也会被Burp被丢弃。 当然,我们可以启用此功能为当前的目标范围,如图,选中【Use suite scope】。或者,可以使用URL匹配规则定义自定义范围,选中【Use custom scope】。 当我们选中【Use custom scope】时,界面将会显示其相关URL匹配规则的详细设置。如下图:

和Target Scope配置类似,它也分包含域和排除域,因其配置方式与Scope一致,此处就不在赘述。如果配置中有不明白的地方,请参数Target Scope配置章节

Session设置

1.会话处理规则(SESSION HANDLING RULES)

动作(Rules Action)

每个规则可以执行一个或多个操作,例如: 从Burp的cookie jar中更新cookies、验证当前会话、 运行宏(预定义的请求序列)等等。通过创建具有不同范围和操作的多个规则,您可以定义Burp将应用于不同应用程序和函数的行为的层次结构。例如,在特定测试中,您可以定义以下规则:对于所有请求,从Burp的cookie jar添加cookie;对于对特定域的请求,请验证与该应用程序的当前会话是否仍处于活动状态,如果没有,请运行宏以重新登录到应用程序,然后使用生成的会话令牌更新cookie jar;对于包含csrftoken参数的特定URL的请求,首先运行宏以获取有效的csrftoken值,并在发出请求时使用此值。 在Details面板中,Burp已经预制了七类规则动作,他们分别是:

Use Cookies From the Session Handling Cookie Jar 这个配置的动作是通过Burp的Cookie.jar用来更新请求的cookie信息,当然,你可以设置更新全部的cookie还是有选择性的更新。

Set a Specific Cookie or Parameter Value 这个配置的动作是指定cookie或者某个参数的值,如果没有设置的话,则在会话中添加此参数或者cookie。

Check Session Is Valid 此动作是检查当前会话是否有效,如果无效,则可选择地执行下一步的动作以获得新的有效会话。或者,我们可以将Burp配置为仅每X个请求验证会话,这有助于避免在应用程序发出多余的请求(==下图中2部分所示==)。 为了确定当前会话的有效性,Burp通常会发出一个或多个请求。这些请求可能是(==下图中1部分所示==):

a.当前的会话请求

b.执行宏脚本

当Burp发出请求,并验证了会话的有效性之后,将不再做下一步动作;如果运行了宏,则Burp将进一步检查请求的应答消息。为了准确地确定会话有效性,我们通常将Burp检查响应配置为搜索表达式,其搜索范围为(==上图中3部分所示==): a)HTTP响应头 b)HTTP响应体 c)任何重定向目标的URL 除了范围外,在设置正则匹配/字符匹配的字符串同时,我们也可以匹配大小写是否敏感、会话是否有效、如果会话失效,需要做的下一步动作是什么等操作。 关于会话失效后的下一步操作,Burp中预制了两个类型,如下图所示:

a.运行宏

b.从浏览器内部恢复会话

Prompt For In-Browser Session Recovery 这个配置的动作是针对于会话失效后,从浏览器内部进行会话恢复的。在会话恢复时,需要使用Proxy代理的请求记录信息,如果使用此动作,则浏览器的代理设置与Burp需要一致。

Run a Macro 在Burp中,宏是一系列顺序操作的Burp操作的总和,预先定义好的,在Session中被运行,用于会话规则的处理。宏运行后,Burp根据最终的宏响应报文来选择更新当前正在处理的请求中的参数和Cookie。至于宏的定义和设置在接下来的章节中会专门描述,此处仅做简要介绍。 当我们在添加Rules Action时选择了“Run a Macro”项,则弹出的宏配置界面如下图所示:

点击【Add】则添加一个宏,选择某个宏记录,点击【Edit】则可以对宏配置进行编辑。其设置界面如下图:

上图中宏的名称、items、请求和应答消息等简单关注即可,需要重点关注的是【configure item】按钮中对参数的设置。当我们点击此按钮,打开宏参数的配置界面:

此界面上已经对请求报文中的参数和cookie自动提取出来,按照元素分别展示,同时,界面下半部分为客户化参数设置,可以自定义自己想要的参数,并从应答报文中提取参数的值。

在上图中,当我们鼠标双击1处时,2和3处会自动设置提取数据的段,我们只要在4处简单填写参数的名字即可完成常用的宏参数设置。 设置完宏之后,当宏运行时,其作用的范围依赖于Session Scope 的设置。

Run a Post-Request Macro Post-Request宏通常使用于多步骤测试的场景,例如:后一步的测试数据依赖于上一步的请求结果。在这些场景下,Post-Request宏的使用会帮助你完成参数值的自动化地填充、fuzz、scan等。

Invoke a Burp Extension 这个配置的动作是Burp的拓展插件,来对当前会话数据进行处理。此处调用的插件,必须要先在Burp的插件中心进行注册。关于Burp插件,请阅读《Burp Suite应用商店插件的使用》

范围(Scope)

而对于Burp做出的每个请求,它在Scope中定义规则在哪些请求的范围内,并且按顺序执行所有这些规则的动作(除非条件检查动作确定不应该对请求)。 每个规则的范围可以基于正在处理的请求的以下特征来定义,在Scope面板中共分为以下三类:

1.正在发送请求的Burp工具(Tools Scope),包含Burp的各个常用工具组件,例如:Target、Scanner、Proxy、Intruder等。

2.请求的网址(Urls Scope),包含所有的URL地址、指定的作用于、自定义作用域三种方式,其配置与Target类似。

3.请求中的参数名称(Paramters Scope),当选中此项时,点击【Edit】按钮即可对参数进行配置,如下图所示例:

配置完毕后的Scope截图大体如下图所示:

配置完成后,会话处理规则将对作用域的Burp工具组件中的会话进行处理,例如,如何配置了Proxy,则通过Proxy的会话,可以通过此面板下方的【open sessions tracer】进行会话跟踪。如下图:

原文发布于微信公众号 - 数据库SQL(SQLdba)

原文发表时间:2018-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博客

Asp.Net MVC 3.0 使用Gzip压缩

Gzip最早由Jean-loup Gailly和Mark Adler创建,用于Unix系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是G...

1132
来自专栏糊一笑

react脚手架改造(react/react-router/redux/eslint/karam/immutable/es6/webpack/Redux DevTools)

公司突然组织需要重新搭建一个基于node的论坛系统,前端采用react,上网找了一些脚手架,或多或少不能满足自己的需求,最终在基于YeoMan的react脚手架...

3545
来自专栏NetCore

Identity Service - 解析微软微服务架构eShopOnContainers(二)

接上一篇,众所周知一个网站的用户登录是非常重要,一站式的登录(SSO)也成了大家讨论的热点。微软在这个Demo中,把登录单独拉了出来,形成了一个Service,...

2595
来自专栏程序员同行者

saltstack 初始化LINUX系统

前面我们已经了解了saltstack的基础功能,现在就可以使用saltstack为初始化新安装的linux系统。

1836
来自专栏智能大石头

NewLife.Net——开始网络编程

1293
来自专栏AILearning

Apache Zeppelin 中 JDBC通用 解释器

概述 JDBC解释器允许您无缝地创建到任何数据源的JDBC连接。 在运行每个语句后,将立即应用插入,更新和升级。 到目前为止,已经通过以下测试: ...

2937
来自专栏智能大石头

NewLife.Net——开始网络编程

网络编程的重要性就不说了,先上源码:https://github.com/nnhy/NewLife.Net.Tests

910
来自专栏数据之美

使用 django-blog-zinnia 搭建个人博客

django-blog-zinnia 虽然小巧,但是具备了个人博客应用的全部基础功能,且具有很高的拓展性,并且开箱即用。以下是官方列出的一些特性: 评论 站...

3029
来自专栏草根专栏

使用Identity Server 4建立Authorization Server (1)

本文内容基本完全来自于Identity Server 4官方文档: https://identityserver4.readthedocs.io/ 官方文档很详...

47610
来自专栏用户2442861的专栏

Tomcat源码 Connector(2)

 Connector是Tomcat最核心的组件之一,负责处理一个WebServer最核心的连接管理、Net IO、线程(可选)、协议解析和处理的工作。 一、...

951

扫码关注云+社区