前言
本博客的主要内容为BurpSuite的部署、使用与原理分析。本博文内容较长,因为涵盖了BurpSuite的几乎全部内容,从部署的详细过程到如何使用BurpSuite进行渗透测试,以及对BurpSuite进行渗透测试的原理分析,相信认真读完本博文,各位读者一定会对BurpSuite有更深的了解。以下就是本篇博客的全部内容了。
1、概述
BurpSuite是一款用于Web应用程序渗透测试的流行工具。它具有许多功能,包括拦截和修改HTTP请求和响应、自动化漏洞扫描、漏洞利用和应用程序映射等。它被广泛用于安全专业人员进行Web应用程序安全测试和渗透测试。以下是BurpSuite的主要组件和功能:
- 代理(Proxy):BurpSuite的代理功能允许用户拦截和修改通过浏览器和应用程序发送的HTTP和HTTPS请求。这使得用户可以手动检查请求和响应,修改参数以测试应用程序的安全性。
- 扫描器(Scanner):BurpSuite的扫描器能够自动发现Web应用程序中的漏洞,包括常见的安全漏洞如SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)。用户可以使用扫描器对目标进行全面扫描,并获取关于潜在漏洞的详细报告。
- 收集器(Intruder):BurpSuite的收集器工具用于自动化攻击,例如字典攻击、暴力破解和参数化攻击。用户可以配置攻击模板,并使用内置的Payload处理器来定制攻击载荷。
- 重复器(Repeater):重复器允许用户手动重放请求,并对响应进行分析。这对于测试特定功能或验证漏洞利用的有效性非常有用。
- 目标(Target):目标工具用于识别和映射Web应用程序的内容和功能。它可以自动发现站点地图,并提供有关站点结构、参数和漏洞的信息。
- 扩展(Extender):BurpSuite的扩展API允许用户编写自定义插件,以扩展工具的功能。这使得用户可以根据自己的需求开发定制化的功能或集成其它工具。
总的来说,BurpSuite是一款功能强大的渗透测试工具,为安全专业人员提供了全面的功能来评估和保护Web应用程序的安全性。
2、安装与使用
软件环境 | 硬件环境 | 约束条件 |
---|---|---|
Ubuntu 22.04.1 LTS(内核版本5.15.0-43-generic) | 内存16GB | BurpSuite 2024.2.1.5 |
具体的软件环境可见“2.1、二进制安装”章节所示的软件环境 | 共分配4个处理器,每个处理器4个内核,共16个处理器内核 | 具体的约束条件可见“2.1、二进制安装”章节所示的软件版本约束 |
硬盘200GB | ||
BurpSuite部署在VMware Pro 17上的Ubuntu 22.04.1系统上(主机系统为Windows11),硬件环境和软件环境也是对应的VMware Pro 17的硬件环境和软件环境 |
2.1、二进制安装
-
首先来到BurpSuite官网,下载免费版本的BurpSuite的安装脚本:
-
然后将下载好的BurpSuite安装脚本放在当前用户的根目录中:
-
然后顺序执行如下命令来安装BurpSuite:
$ cd ~
$ chmod +x ./burpsuite_community_linux_v2024_2_1_5.sh
$ sudo ./burpsuite_community_linux_v2024_2_1_5.sh
-
然后会出现如下图所示的界面,按照下图红箭头和红框处所示进行选择即可:
-
然后按照如下图所示进行选择即可:
-
然后按照如下图所示进行选择即可:
-
然后开始进行安装:
-
安装完成,按照如下图所示进行选择即可:
-
然后执行如下命令启动BurpSuite:
$ BurpSuiteCommunity
-
然后按照如下图所示进行选择:
-
然后按照如下图所示进行选择:
-
然后按照如下图所示进行选择:
-
然后会来到如下图所示的界面,这就代表我们已经安装好了BurpSuite:
2.2、使用方法
2.2.1、Proxy模块
Proxy模块是BurpSuite中的一个核心功能,用于拦截、修改和分析通过Web浏览器发送的HTTP和HTTPS请求和响应。下面我们介绍该模块的具体使用方式。
-
首先来到Proxy模块界面,打开拦截功能:
-
然后打开浏览器:
-
在打开的浏览器中,随便访问一个网站,比如我们访问百度:
-
此时可以发现,BurpSuite的Proxy模块就帮我们拦截到了此次请求:
-
我们拦截该请求有什么用呢?注意到Proxy模块中的Action选项,该选项就表示对Proxy模块拦截的请求进行处理的具体操作。
在这些操作中,有些比较重要,比如:- 修改请求方式
- Change request method
- 发送当前请求到其它模块进行处理
- Send to Intruder
- Send to Repeater
- Send to Sequencer
- Send to Comparer
- Send to Decoder
- Send to Organizer
- 将该请求页面存储
- Copy to file
- 导入其它请求的数据包
- Paste from file
- 拦截当前请求的返回数据
- Do intercept
- 对输入对象进行urlcode编码
- URL-encode as you type
- 修改请求方式
-
此外,若想将拦截到的请求继续发送到服务器,可以使用Forward选项。若想将拦截到的请求丢弃,可以使用Drop选项。如下图所示:
-
我们还可以使用HTTP history选项查看我们提交过的HTTP请求:
-
另外,要想对Proxy模块进行设置,可以使用Proxy settings选项:
-
在这里,我们可以设置Proxy模块对于请求和响应的过滤规则:
-
若想将拦截到的请求中的指定内容进行匹配并将其进行替换,可以修改Proxy模块中的如下图所示的配置:
2.2.2、Dashboard模块
BurpSuite中的Dashboard模块是用于显示关于当前BurpSuite实例的重要信息和统计数据的面板。它提供了对渗透测试进度和结果的实时概览,帮助用户快速了解当前渗透测试的状态和结果。下面我们介绍该模块的具体使用方式。
当经过“2.2.1、Proxy模块”章节的操作后,我们已经成功拦截到了一个请求,如果此时我们来到Dashboard模块的界面,就会看到关于此次拦截到的请求的详细信息(比如请求方式和请求状态码等)。
2.2.3、Target模块
BurpSuite中的Target模块是用于识别、映射和管理目标Web应用程序的内容和功能的工具。它提供了一种组织和跟踪渗透测试目标的方式,帮助用户更有效地执行渗透测试任务。下面我们介绍该模块的具体使用方式。
该模块主要起一个辅助的作用,可以通过Target模块观察到拦截到的请求的详细信息,比如响应的目录结构、具体的响应数据和具体的请求数据等。如下图就是在经过“2.2.1、Proxy模块”章节的操作后的Target模块中的具体情况。
2.2.4、Intruder模块
Intruder模块是BurpSuite的一个功能强大的工具,用于自动化攻击和测试Web应用程序的各种参数。它主要用于执行定制化的攻击,如字典攻击、暴力破解、参数化攻击等,以测试应用程序对不同输入的处理方式,并发现潜在的安全漏洞。下面我们介绍该模块的具体使用方式。
-
首先让我们来到“2.2.1、Proxy模块”章节中使用Proxy模块拦截到的请求的Action选项,并将此次拦截到的请求发送到Intruder模块:
-
然后我们来到Intruder模块,我们可以通过该模块对此次拦截到的请求使用四种攻击类型,并对其进行攻击:
在这里我们有四种方式对目标进行攻击,即:- Sniper
狙击手单点模式,将Payload逐一填充到指定位置 - Battering ram
将Payload同时填充到多个位置,例如将A字典的Payload同时填充到两个位置 - Pitchfork
将每个字典逐一匹配对称,例如将A字段的1号位与B字典的1号位匹配,绝不相交匹配 - Cluster bomb
将每个字典逐一交叉匹配,例如将A字段的所有位与B字典的所有位都进行匹配
- Sniper
-
如果想对Payload进行自定义的配置,我们可以通过以下界面进行设置。注意:这里会根据不同的Payload类型进行不同的配置:
2.2.5、Repeater模块
Repeater模块是BurpSuite中的一个重要工具,用于手动测试和分析Web应用程序的请求和响应。它提供了一个交互式的界面,使用户能够轻松地重放HTTP请求,并对响应进行分析和修改。下面我们介绍该模块的具体使用方式。
-
首先让我们来到“2.2.1、Proxy模块”章节中使用Proxy模块拦截到的请求的Action选项,并将此次拦截到的请求发送到Repeater模块:
-
在该模块,我们可以对拦截到的请求中的数据进行加解密编码的操作。比如我们要对
document
这个数据进行加解密编码的操作,只需要在其上右键,然后按照如下图所示进行操作即可:
-
加解密编码操作结束后,可以将该拦截到并加解密编码后的请求重发:
-
此外,我们还可以对拦截到的请求中的数据的Hex值进行修改(常用于渗透绕过等),并将修改后的请求数据重发:
2.2.6、Sequencer模块
Sequencer模块是BurpSuite中的一个功能,用于对应用程序生成的随机数、Token或其它不确定性数据进行分析和评估。它通过收集大量的样本数据,并对其进行统计和分析,来评估随机数生成器的质量和预测其下一个值。下面我们介绍该模块的具体使用方式。
-
首先让我们来到“2.2.1、Proxy模块”章节中使用Proxy模块拦截到的请求的Action选项,并将此次拦截到的请求发送到Sequencer模块:
-
然后来到Sequencer模块的界面,我们就可以对拦截的请求的Token进行设置,然后开始捕获实时请求,从而实现对Token安全性的检验:
-
当然,我们也可以手动加载Token数据并对其进行安全性的分析:
2.2.7、Decoder模块
Decoder模块是BurpSuite中的一个功能,用于对各种编码和加密格式进行解码和转换。它可以帮助安全专业人员理解和处理从Web应用程序中获取的编码或加密数据,并还原为原始的可读形式。下面我们介绍该模块的具体使用方式。
-
首先让我们来到“2.2.1、Proxy模块”章节中使用Proxy模块拦截到的请求的Action选项,并将此次拦截到的请求发送到Decoder模块:
-
然后我们来到Decoder模块,就可以对此次拦截到的请求数据进行加密或者解密了:
2.2.8、Comparer模块
Comparer模块是BurpSuite中的一个工具,用于比较两个HTTP请求或响应之间的差异。它提供了一种方便的方式来查看两个请求或响应之间的差异,以便用户快速识别变化和异常。下面我们介绍该模块的具体使用方式。
-
首先让我们来到“2.2.1、Proxy模块”章节中使用Proxy模块拦截到的请求的Action选项,并将此次拦截到的请求发送到Comparer模块:
-
然后将之前拦截到的请求丢弃:
-
然后关闭之前的浏览器,再打开新的浏览器:
-
然后在新的浏览器中访问QQ:
-
此时我们就拦截到了新的请求,然后只需要将这次拦截到的请求发送到Comparer模块即可:
-
然后来到Comparer模块,就可以发现传过来的两次拦截到的请求。首先我们先来看按字符比较的方式:
-
可以发现,下图就展示了如何按字符比较两次拦截到的请求:
-
此外,我们还可以按字节比较这两次拦截到的请求:
2.2.9、Logger模块
Logger模块是BurpSuite中的一个功能,用于记录和保存HTTP请求和响应的日志数据。它提供了一种方便的方式来捕获和保存BurpSuite的代理模块拦截的HTTP流量,以供进一步分析和审查。下面我们介绍该模块的具体使用方式。
其实该模块的主要功能就是记录,主要记录我们使用BurpSuite发送的请求及其具体信息。这些比如在“2.2.1、Proxy模块”章节进行的操作,都被记录到Logger模块中。
2.2.10、Organizer模块
Organizer模块是BurpSuite中的一个工具,它是一个用于管理和组织HTTP请求和响应的工具。该插件旨在帮助用户更有效地处理和管理大量的HTTP流量数据,特别是在渗透测试和安全分析过程中。下面我们介绍该模块的具体使用方式。
-
首先让我们来到“2.2.1、Proxy模块”章节中使用Proxy模块拦截到的请求的Action选项,并将此次拦截到的请求发送到Organizer模块:
-
在该模块中,可以对在“2.2.1、Proxy模块”章节中拦截到的请求数据进行管理与配置。该模块并不是非常重要,如果拦截到大流量请求可能会有用:
2.2.11、Extensions模块
Extensions模块是BurpSuite的一个重要组成部分,用于扩展BurpSuite的功能和定制化工作流程。它提供了一个平台,使安全专业人员能够编写、安装和管理自定义插件,以满足特定的需求和任务要求。下面我们介绍该模块的具体使用方式。
-
我们可以来到如下界面查看目前BurpSuite已经安装的插件,可以发现目前我们并没有安装任何插件:
-
如果想按照插件,可以通过如下界面进行检索并安装。比如想安装名为“.NET Beautifier”的插件,就可以按照如下图所示的步骤进行操作:
-
此外,BurpSuite还提供了如下界面让我们可以对其API进行自定义:
2.2.12、Learn模块
该模块就是我们部署好BurpSuite后第一个看到的界面,该模块没什么特殊的,其目的就是给用户提供一个界面,该界面囊括了关于BurpSuite工具的一些信息,比如教程、支持中心和特征介绍等。
3、测试用例
3.1、SQL注入漏洞检测
- 首先安装Java:
$ sudo apt update
$ sudo apt install default-jdk -y
- 然后启动BurpSuite:
$ BurpSuiteCommunity
-
然后来到Extensions模块准备添加SQLiPy插件,但是发现暂时还不能安装此插件,因为缺少Jython,那么我们就来下载安装Jython:
-
然后按照如下图所示进行选择,就会下载Jython的安装包:
-
下载好后将其加载进来:
-
然后点击SQLiPy插件,发现此时就可以对其安装了:
-
安装成功后,会出现SQLiPy模块。让我们来到该模块,并启动此API:
-
启动成功:
-
然后开启BurpSuite的拦截功能,并打开浏览器:
-
然后对百度进行请求:
-
然后将拦截到的请求发送到SQLiPy模块:
-
来到SQLiPy模块后,获取此次请求的用户名和表名,最后开始进行SQL注入漏洞的检测:
-
扫描后,就可以来到Target模块查看扫描结果:
-
此外,还可以在SQLiPy模块的SQLMap Logs中查看漏洞扫描结果:
3.2、XSS漏洞检测
- 首先来到当前用户的根目录中,并下载PhantomJS的源代码:
$ cd ~
$ wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
- 然后对其解压并安装:
$ tar -xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
$ sudo mv phantomjs-2.1.1-linux-x86_64 /usr/local/phantomjs
$ sudo ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin/phantomjs
$ export OPENSSL_CONF=/etc/ssl/
- 然后下载xss.js:
$ sudo apt-get install git -y
$ git clone https://github.com/NetSPI/xssValidator.git
$ cp xssValidator/xss-detector/xss.js ./xss.js
- 然后运行xss.js:
$ cd xssValidator/xss-detector/
$ phantomjs ./xss.js
- 然后打开一个新的命令行终端并启动BurpSuite:
$ BurpSuiteCommunity
-
然后来到Extensions模块安装XSS Validator插件:
-
但是在这里发现不允许我们安装XSS Validator插件,这是因为这是专业版BurpSuite才有的功能,而我们的是免费版,不支持该功能。若以后将BurpSuite升级到专业版,我们将会更新该部分内容。
4、总结
4.1、BurpSuite检测的漏洞对象
由于BurpSuite不提供漏洞扫描功能且闭源,故无法得知其检测的漏洞对象。
4.2、BurpSuite的漏洞信息来源
由于BurpSuite不提供漏洞扫描功能且闭源,故无法得知其漏洞信息来源。
5、参考文献
- Professional / Community 2024.2.1.5 | Releases
- 如何在 Linux 上安装和设置 Burp Suite
- Ubuntu安装Burp Suite–史上最详细教程
- Ubuntu 22.04.3安装Burp Suite
- BurpSuite_Pro v2024.3.1(刚出炉的)
- BurpSuite全套使用教程(超实用超详细介绍)
- 渗透工具burpsuite使用教程(二)
- 1-15 Burpsuite Sequencer介绍
- BurpSuite系列(七)----Sequencer模块(定序器)
- 第一章 Burp Suite 安装和环境配置
- burpsuite插件安装教程
- burpsuite插件xssValidator的安装及使用(XSS自动扫描工具)
- linux安装phantomjs报错ssl_conf
- Ubuntu安装phantomjs
- 【xss实战】BurpSuite-XssValidator插件 -xss自动化测试
- NetSPI/xssValidator: This is a burp intruder extender that is designed for automation and validation of XSS vulnerabilities.
总结
以上就是本篇博文的全部内容,可以发现,BurpSuite是一款进行渗透测试工具,并且其原理也并不复杂。相信读完本篇博客,各位读者一定对BurpSuite有了更深的了解。