BurpSuite使用大全(详解)

#BurpSuite使用大全(详解) 十八章系列

    • 第一章 Burp Suite 安装和环境配置
    • 第二章 Burp Suite代理和浏览器设置
      • IE设置
      • FireFox设置
      • Google Chrome设置
    • 第三章 如何使用Burp Suite代理
      • Burp Proxy基本使用
      • 数据拦截与控制
      • 可选项配置Options
      • 正则表达式配置
      • 其他配置项
      • 历史记录History

十八章系列

Table of Contents

第一章 Burp Suite 安装和环境配置

Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手
工地能更好的完成对web应用的渗透测试和攻击。在渗透测试中,我们使用Burp Suite将使得
测试工作变得更加容易和方便,即使在不需要娴熟的技巧的情况下,只有我们熟悉Burp Suite
的使用,也使得渗透测试工作变得轻松和高效。
Burp Suite是由Java语言编写而成,而Java自身的跨平台性,使得软件的学习和使用更加方
便。Burp Suite不像其他的自动化测试工具,它需要你手工的去配置一些参数,触发一些自动
化流程,然后它才会开始工作。
Burp Suite可执行程序是java文件类型的jar文件,免费版的可以从免费版下载地址进行下载。
免费版的Burp Suite会有许多限制,很多的高级工具无法使用,如果您想使用更多的高级功
能,需要付费购买专业版。专业版与免费版的主要区别有

  1. Burp Scanner
  2. 工作空间的保存和恢复
  3. 拓展工具,如Target Analyzer, Content Discovery和 Task Scheduler
    本章主要讲述Burp Suite的基本配置,包含如下内容:
    如何从命令行启动Burp Suite
    如何设置JVM内存 大小
    IPv6问题调试
    如何从命令行启动Burp Suite
    Burp Suite是一个无需安装软件,下载完成后,直接从命令行启用即可。但Burp Suite是用
    Java语言开发的,运行时依赖于JRE,需要提前Java可运行环境。如果没有配置Java环境或
    者不知道如何配置的童鞋请参考win7电脑上的Java环境配置 配置完Java环境之后,首先验证
    Java配置是否正确,如果输入java -version 出现下图的结果,证明配置正确且已完成。
    BurpSuite使用大全(详解)_第1张图片
    这时,你只要在
    cmd里执行java -jar /your_burpsuite_path/burpSuite.jar即可启动Burp Suite,或者,你将Burp
    Suite的jar放入class_path目录下,直接执行java -jar burpSuite.jar也可以启动。
    注意:your_burpsuite_path为你Burp Suite所在路径,burpSuite.jar文件名必须跟你下载的
    jar文件名称一致

    如何设置JVM内存 大小
    如果Java可运行环境配置正确的话,当你双击burpSuite.jar即可启动软件,这时,Burp Suite
    自己会自动分配最大的可用内存,具体实际分配了多少内存,默认一般为64M。当我们在渗
    透测试过程,如果有成千上万个请求通过Burp Suite,这时就可能会导致Burp Suite因内存不
    足而崩溃,从而会丢失渗透测试过程中的相关数据,这是我们不希望看到的。因此,当我们
    启动Burp Suite时,通常会指定它使用的内存大小。 一般来说,我们通常会分配2G的内存供
    Burp Suite使用,如果你的电脑内存足够,可以分配4G;如果你的电脑内存足够小,你也可
    以分配128M。当你给Burp Suite分配足够多的内存时,它能做的工作也会更多。指定Burp
    Suite占用内存大小的具体配置方法是在启动脚本里添加如下命令行参数: 假设启动脚本的名
    称为burp_suite_start.bat,则该bat脚本的内容为
    java -jar -Xmx2048M /your_burpsuite_path/burpsuite.jar
    其中参数-Xmx指定JVM可用的最大内存,单位可以是M,也可以是G,如果是G为单位的话,
    则脚本内容为:

java -jar -Xmx2G
/your_burpsuite_path/burpsuite.jar

更多关于JVM性能调优的知识请阅读 Oracle JVM Tuning
IPv6问题调试
Burp Suite是不支持IPv6地址进行数据通信的,这时在cmd控制台里就会抛出如下异常

java.net.SocketException: Permission denied

同时,浏览器访问时,也会出现异常

Burp proxy error: Permission denied: connect

当出现如上问题时,我们需要修改启动脚本,添加对IPv4的指定后,重启Burp Suite即可。

java -jar -Xmx2048M
-Djava.net.preferIPv4Stack=true /your_burpsuite_path/burpsuite.j ar

通过 -Djava.net.preferIPv4Stack=true参数的设置,告诉Java运行环境,使用IPv4协议栈进行
数据通信,IPv6协议将会被禁止使用。 这个错误最常见于64位的windows操作系统上,使用
了32位的JDK

第二章 Burp Suite代理和浏览器设置

Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数
据、服务器端的返回信息等。Burp Suite主要拦截http和https协议的流量,通过拦截,Burp
Suite以中间人的方式,可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测
试的目的。
在日常工作中,我们最常用的web客户端就是的web浏览器,我们可以通过代理的设置,做到
对web浏览器的流量拦截,并对经过Burp Suite代理的流量数据进行处理。
下面我们就分别看看IE、Firefox、Google Chrome下是如何配置Burp Suite代理的。

IE设置

当Burp Suite 启动之后,默认分配的代理地址和端口是127.0.0.1 :8080,我们可以从Burp
Suite的proxy选项卡的options上查看。如图:
BurpSuite使用大全(详解)_第2张图片现在,我们通过如下步骤的设置即可完成IE通过Burp Suite 代理的相关配置。

  1. 启动IE浏览器
  2. 点击【工具】菜单,选择【Internet】选项
    BurpSuite使用大全(详解)_第3张图片3. 打开【连接】选项卡,点击【局域网设置】,进行代理设置。
    BurpSuite使用大全(详解)_第4张图片4. 在代理服务器设置的地址输入框中填写127.0.0.1,端口填写8080,点击【确定】,完成代理服务器的设置。
    BurpSuite使用大全(详解)_第5张图片5. 这时,IE的设置已经完成,你可以访问 http://burp 将会看到Burp Suite的欢迎界面。
    BurpSuite使用大全(详解)_第6张图片

FireFox设置

与IE的设置类似,在FireFox中,我们也要进行一些参数设置,才能将FireFox浏览器的通信流
量,通过Burp Suite代理进行传输。详细的步骤如下:

  1. 启动FireFox浏览器,点击【工具】菜单,点击【选项】。
    BurpSuite使用大全(详解)_第7张图片2. 在新打开的about:preferences#advanced窗口中,依次点击【高级】-【网络】,我们将
    会看到FireFox连接网络的设置选项。
    BurpSuite使用大全(详解)_第8张图片3. 点击【设置】,在弹出的【连接设置】对话框中,找到“http代理”,填写127.0.0.1,端口
    填写8080,最后点击【确认】保存参数设置,完成FireFox的代理配置。
    BurpSuite使用大全(详解)_第9张图片当然,FireFox浏览器中,可以添加FireFox的扩展组件,对代理服务器进行管理。例如
    FireX Proxy、Proxy Swither都是很好用的组件,感兴趣的读者可以自己下载试用一下。

Google Chrome设置

Google Chrome使用Burp Suite作为代理服务器的配置步骤如下:

  1. 启动Google Chrome浏览器,在地址栏输入chrome://settings/,回车后即显示Google
    Chrome浏览器的配置界面
    BurpSuite使用大全(详解)_第10张图片2. 点击底部的【显示高级设置】,将显示Google Chrome浏览器的高级设置。
    BurpSuite使用大全(详解)_第11张图片3. 当然,你也可以直接在搜索框中输入“代理”,回车后将自动定位到代理服务器设置功能。
    BurpSuite使用大全(详解)_第12张图片4. 点击【更改代理服务器设置】,windows系统下将会弹出IE浏览器的代理设置,此时,按
    照IE浏览器的设置步骤,完成代理服务器的配置即可。
    除了上述的三种常用的浏览器外,还有Safari浏览器也有不少的用户在使用,其代理配置请点击阅读进行查看。

第三章 如何使用Burp Suite代理

Burp Proxy 是Burp Suite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截、
查看、修改所有在客户端和服务端之间传输的数据。
本章主要讲述以下内容:
Burp Proxy基本使用
数据拦截与控制
可选项配置Options
历史记录History

Burp Proxy基本使用

通过上一章的学习,我们对Burp Suite代理模式和浏览器代理设置有了基本的了解。Burp
Proxy的使用是一个循序渐进的过程,刚开始使用时,可能并不能很快就获取你所期望的结
果,慢慢地当你熟悉了它的功能和使用方法,你就可以用它很好地对一个产品系统做安全能
力评估。 一般使用Burp Proxy时,大体涉及环节如下:

  1. 首先,确认JRE已经安装好,Burp Suite可以启动并正常运行,且已经完成浏览器的代理
    服务器配置。
  2. 打开Proxy功能中的Intercept选项卡,确认拦截功能为“Interception is on”状态,如果显示
    为“Intercept is off”则点击它,打开拦截功能。
    BurpSuite使用大全(详解)_第13张图片3. 打开浏览器,输入你需要访问的URL(以http://baike.baidu.com/为例)并回车,这时你
    将会看到数据流量经过Burp Proxy并暂停,直到你点击【Forward】,才会继续传输下
    去。如果你点击了【Drop】,则这次通过的数据将会被丢失,不再继续处理。
  3. 当我们点击【Forward】之后,我们将看到这次请求返回的所有数据。
    BurpSuite使用大全(详解)_第14张图片5. 当Burp Suite拦截的客户端和服务器交互之后,我们可以在Burp Suite的消息分析选项卡
    中查看这次请求的实体内容、消息头、请求参数等信息。消息分析选项视图主要包括以下四项:

BurpSuite使用大全(详解)_第15张图片6. Raw 这是视图主要显示web请求的raw格式,包含请求地址、http协议版本、主机头、浏
览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。你可以通过手工
修改这些信息,对服务器端进行渗透测试。
7. params 这个视图主要显示客户端请求的参数信息、包括GET或者POST请求的参数、
Cookie参数。渗透人员可以通过修改这些请求参数来完成对服务器端的渗透测试。
8. headers 这个视图显示的信息和Raw的信息类似,只不过在这个视图中,展示得更直观、
友好。
9. Hex 这个视图显示Raw的二进制内容,你可以通过hex编辑器对请求的内容进行修改。
默认情况下,Burp Proxy只拦截请求的消息,普通文件请求如css、js、图片是不会被拦截
的,你可以修改默认的拦截选项来拦截这些静态文件,当然,你也可以通过修改拦截的作用
域、参数或者服务器端返回的关键字来控制Burp Proxy的消息拦截,这些在后面的章节中我们会进一步的学习。 所有流经Burp Proxy的消息,都会在http history记录下来,我们可以通
过历史选项卡,查看传输的数据内容,对交互的数据进行测试和验证。同时,对于拦截到的
消息和历史消息,都可以通过右击弹出菜单,发送到Burp的其他组件,如Spider、Scanner、
Repeater、Intruder、Sequencer、Decoder、Comparer、Extender,进行进一步的测试。如
下图所示:
BurpSuite使用大全(详解)_第16张图片

数据拦截与控制

Burp Proxy的拦截功能主要由Intercept选项卡中的Forward、Drop、Interception is on/off、
Action、Comment 以及Highlight构成,它们的功能分别是: Forward的功能是当你查看过消
息或者重新编辑过消息之后,点击此按钮,将发送消息至服务器端。 Drop的功能是你想丢失
当前拦截的消息,不再forward到服务器端。 Interception is on表示拦截功能打开,拦截所有
通过Burp Proxy的请求数据;Interception is off表示拦截功能关闭,不再拦截通过Burp
Proxy的所有请求数据。 Action的功能是除了将当前请求的消息传递到Spider、Scanner、
Repeater、Intruder、Sequencer、Decoder、Comparer组件外,还可以做一些请求消息的修
改,如改变GET或者POST请求方式、改变请求body的编码,同时也可以改变请求消息的拦
截设置,如不再拦截此主机的消息、不再拦截此IP地址的消息、不再拦截此种文件类型的消
息、不再拦截此目录的消息,也可以指定针对此消息拦截它的服务器端返回消息。
BurpSuite使用大全(详解)_第17张图片Comment的功能是指对拦截的消息添加备注,在一次渗透测试中,你通常会遇到一连串的请求消息,为了便于区分,在某个关键的请求消息上,你可以添加备注信息。
BurpSuite使用大全(详解)_第18张图片Highlight的功能与Comment功能有点类似,即对当前拦截的消息设置高亮,以便于其他的请求消息相区分。
BurpSuite使用大全(详解)_第19张图片除了Intercept中可以对通过Proxy的消息进行控制外,在可选项设置选项卡Options中也有很多的功能设置也可以对流经的消息进行控制和处理。

可选项配置Options

当我们打开可选项设置选项卡Options,从界面显示来看,主要包括以下几大板块(涉及https
的功能不包含在本章内容里,后面会一章专门叙述):
客户端请求消息拦截
服务器端返回消息拦截
服务器返回消息修改
正则表达式配置
其他配置项
客户端请求消息拦截
客户端请求消息拦截是指拦截客户端发送到服务器端消息的相关配置选项,其界面如下:
BurpSuite使用大全(详解)_第20张图片主要包含拦截规则配置、错误消息自动修复、自动更新Content-Length消息头三个部分。

  1. 如果intercept request based on the follow rules的checkbox被选中,则拦截所有符合勾
    选按钮下方列表中的请求规则的消息都将被拦截,拦截时,对规则的过滤是自上而下进
    行的。当然,我们可以根据自己的需求,通过【Up】和【Down】按钮,调节规则所在位
    置和排序。同时,我们可以点击【Add】添加一条规则,也可以选中一条规则,通过点击
    【Edit】进行编辑、点击【Remove】进行删除。当我们点击【Add】按钮时,会弹出规
    则添加的输入对话框,如下图:
    BurpSuite使用大全(详解)_第21张图片拦截规则添加时,共包含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消息头部也会自动被修改,替换为与之相对应的值。
    服务器端返回消息拦截服务器端返回消息拦截顾名思义是指拦截服务器端返回的消息的相关配置项,其界面如下:
    BurpSuite使用大全(详解)_第22张图片它的功能主要包含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-Lengthheader when the request edited相对应,就不在赘述,请参上一节的内容。
    服务器返回消息修改服务器返回消息修改是指自动修改服务器端返回消息的相关设置项。其界面如下:
    BurpSuite使用大全(详解)_第23张图片自上而下,每
    一个选择项分别对应的功能是
    显示form表单中隐藏字段
    高亮显示form表单中隐藏字段
    使form表单中的disable字段生效,变成可输入域
    移除输入域长度限制
    移动JavaScript验证
    移动所有的JavaScript
    移除标签
    转换https超链接为http链接
    移除所有cookie中的安全标志
    通过服务器返回消息修改可选择项的设置,可以方便渗透测试人员在安全评估过程中突破原
    有的数据限制,更好、更快地检测服务器端的安全性。

正则表达式配置

此项配置主要用来自动替换请求消息和服务器端返回消息中的某些值和文本,它与前文的规则的不同之处还在于支持正则表达式语言。
BurpSuite使用大全(详解)_第24张图片当点击【Add】按钮时,在弹出的匹配或替换规则输入对话框中我们可以看到,它可以对请求和返回消息的消息头,消息体、请求参数名、请求参数值、请求的第一行进行匹配和替换。
例如,当我们要替换所有返回消息中的邮箱地址为[email protected]时,可以参考下图的设置填写输入项并保存验证。
BurpSuite使用大全(详解)_第25张图片

其他配置项

其他配置项主要是杂项设置。其界面如下:
BurpSuite使用大全(详解)_第26张图片自上而下依次的功能是

指定使用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种方式。

历史记录History

Burp Proxy的历史记录由HTTP历史和WebSockets历史两个部分组成。
BurpSuite使用大全(详解)_第27张图片HTTP历史界面由筛选过滤器、历史记录列表、消息详情3个部分组成。
BurpSuite使用大全(详解)_第28张图片当我们在某一条历史记录上单击,会在下方的消息详解块显示此条消息的文本详细信息。当我们在某条消息上双击,则会弹出此条消息的详细对话框。
BurpSuite使用大全(详解)_第29张图片我们可以点击对话框右上方的【Previous】、【Next】按钮,浏览上一条或下一条消息的内容,也可以修改Raw的请求参数,然后执行多【Action】操作。
BurpSuite使用大全(详解)_第30张图片历史消息列表中主要包含请求序列号、请求协议和主机名、请求的方式、URL路径、请求参数、Cookie、是否用户编辑过消息、服务器端返回的HTTP状态码等信息。通过这些信息,我们可以对一次客户端与服务器端交互的HTTP消息详情做出准确的分析,同时,在下方的详情视图中,也提供基于正则表达式方式的匹配查找功能,更好的方便渗透测试人员查找消息体
中的相关信息。
BurpSuite使用大全(详解)_第31张图片当我们在做产品系统的安全评估过程中,会在HTTP历史中保存了大量的日志记录,为了更友好的消息管理,Burp提供了筛选过滤器功能。当我们点击HTTP历史标签下发的Filter时,将弹出筛选过滤器界面。
BurpSuite使用大全(详解)_第32张图片按照过滤条件的不同,筛选过滤器划分出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的代理模式有了更深入的理解,知道了作为中间人的Burp
Proxy在消息拦截过程中,可以对请求消息、应答消息做多方面的修改,并可以把消息传递给
Burp的其他组件做进一步的测试。同时,Burp Proxy的历史日志功能和多种筛选过滤器让我
们在使用中,能快速地查找需要的数据和关键信息,这些,都极大地帮助你提高了工作效
率。
各位的点赞,就是我更新的动力!

你可能感兴趣的:(burp,suite,笔记,安全)