1.Burp Suite简介
Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具。Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP、HTTPS消息、持久性、认证、代理、日志、警报。
2.Burp Suite挂载原理
Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据,服务器端的返回信息等,Burp Suit主要拦截的是HTTP和HTTPS协议的流量,通过拦截,Burp Suite以中间人的方式对客户端的请求数据、服务端的返回信息做各种处理,以达到安全测试的目的。在日常工作中,最常用的Web客户端就是Web浏览器,我们可以通过设置代理信息,拦截Web浏览器的流量,并对经过Burp Suite代理的流量数据进行处理。
Burp Suit的默认端口为8080
3.前期准备
Burp Suite是右Java语言编写的,由于Java自身的跨平台性,使得这款软件学习和使用起来更加方便。因此在安装Burp Suite前先安装JAVA环境,在此就不再赘述,请自行百度,下面介绍Burp Suite的安装及使用。
1.获取软件包
链接:https://pan.baidu.com/s/1_DQYYYBrM0VrhOTMgpelBQ
提取码:hv9p
下载文件并打开下面这个文件
2.点击run
注意:如果需要证书密钥则把上图中的密钥复制粘贴到需要的地方
3.运行burp suite
点击run之后就启动了burp suite
4.选择默认然后next
5.启动burp suite
这样burpsuite就安装好了,但是到这一步还不够,还需要安装证书。如果不安装证书只能抓起http数据包,只有安装了证书才可以抓取https数据包。
6.安装证书
为什么要安装证书?
因为对应Burp Suite来说,它默认只能抓取HTTP的数据包,如果安装了证书,你们Burp Suite就可以抓取HTTPS的数据包。
(1):设置火狐浏览器的代理
选项–>常规–>设置–>手动代理配置
(2):下载证书
在火狐浏览器中输入http://burp,然后下载证书
(3):向浏览器中导入证书
勾选所有的框
(4):向burpsuite中导入证书
选择证书路径
(5):验证
使用浏览器访问HTTPS)(https://www.baidu.com)
访问baidu.com抓到了数据包,说明Burp Suite配置成功。
1.Dashboard(仪表盘)
主要分为三块:Tasks(任务)、Event log(事件日志)、issue activity(动态发现的问题)
2.Target(目标)
显示目标结构的一个功能
3.Proxy(代理)
Burp proxy是利用Burp开展测试流程的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端与服务器端的之间传输的数据。实际上是利用burp suit在本地设置了一个代理,在8080端口使用。
4.Intruder(入侵)(使用快捷键Ctrl+I将数据包发送到Intruder)
这是一个定制的高度可配置的工具,对web应用程序进行自动化攻击。此功能有多种用途,如漏洞利用、Web应用程序模糊测试、进行暴力破解等。其中Intruder中包含如下四个模块
- Target(目标)----包含目标主机的信息
- Positions(位置)----可以在这个模块中修改参数,选择攻击类型
先使用Clear清空参数,然后使用Add添加参数
一共有四种攻击 类型:
Sniper:一个字典,两个参数,先匹配第一个参数,再匹配第二个参数
Battering ram:一个字典,两个参数,一个字典同时匹配两个参数,同用户名同密码
Pitchfork:两个字典,两个参数,两个字典分别匹配两个参数,到短的截至
Cluster bomb:两个字典,两个参数,交叉匹配(使用第一个字典的第一项匹配第一个参数,然后遍历第二个字典),所有可能- Payloads(载荷)
在这添加载荷,可以添加自定义的字典,也可以使用字典文件进行爆破- Options(选项)
在这修改Intruder的各种设置
5.Repeater(中继器):Repeater是一个靠手动操作来触发单独的HTTP请求,并进行应用程序响应的工具。此功能用于根据不同的情况修改和发送相同的请求次数并分析。(Ctrl+R发送到Repeater)
6.Sequencer(会话):Sequencer是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
7.Decoder(解码器):解码器是一个进行手动执行或对应用程序数据者智能解码编码的工具。此功能可用于解码数据找回原来的数据形式,或者进行编码和数据加密。
8.Comparer(对比):通常是通过一些相关的请求和响应得到两项数据的一个可视化“差异”。此功能主要用于执行任意两个请求,响应或任何其他形式的数据之间的比较。
9.Extender(扩展):可以让你加载Burp Suit的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
10.Project options(项目选项):对项目参数的一些设置
11.Options(设置):对Burp Suit的一些设置。
1.Proxy
(1):Burp Suite是利用Burp开展测试流程的核心,通过代理模块,可以拦截、查看、修改所有在客户端与服务端之间传输的数据。
(2):Burp Proxy的拦截功能主要由Intercept选项中的Forward、Drop、Interception is on/off和Action构成,他们的功能如下所示。
- Forward表示将拦截的数据包或修改后的数据包发送给服务器端
- Drop表示丢弃当前拦截的数据包
- Interception is on/off表示开启/关闭拦截功能
- 单击Action按钮,可以进一步把数据包发送到Repeater、Intruder等功能进行进一步的测试,同时也包含数据包请求方式及其body编码等功能
(3):打开浏览器,输入需要访问的URL并按回车键,这时将看到数据流量过Burp Proxy并暂停,直到单击Forward按钮,才会继续传输下去;如果单击了Drop按钮,这次的数据包将丢失,不再继续处理。
(4):当Burp Suite拦截的客户端和服务器进行交互之后,我们可以在Burp Suit的消息分析选项中查看这次请求的实体内容、消息头、请求参数等信息。Burp Suit有四种类型显示数据包:Raw、Params、Headers和Hex:
- Raw主要显示web请求的raw格式,以纯文本的形式显示数据包,包含请求地址、HTTP协议版本、主机头、浏览器信息、Accept可接收的内容形式、字符集、编码方式、cookie等,可以通过手动修改这些信息,对服务器进行渗透测试。
- Params主要显示客户端请求的参数信息,包括GET和POST请求的参数、cookie参数。可以通过修改这些请求参数来完成对服务器的渗透测试。
- Headers中显示的时数据包中的头信息,以名称、值的形式显示数据包。
- Hex对应的时Raw中信息的十六进制内容,可以通过Hex编辑器对请求的内容进行修改,在进行00截断的时候特别好用。
2.Decoder
(1):Decoder的功能比较简单,它是Burp中自带的编码解码及散列转换工具,能对原始数据进行各种编码格式和散列的转换。
(2):Decoder的输入域显示的是需要编码/解码的原始数据,此处可以直接填写或粘贴,也可以通过右键"Send to Decoder"选项发送过来;无论是输入域还是输出域都支持文本和Hex这两种格式,编码解码选项由解码选项(Decode as)、编码选项(Encode as)、散列(Hash)构成。
(3):对编码选项来说,目前支持URL、HTML、Base64、ASCII、十六进制、八进制、二进制和GZIP共八种形式的格式转换,Hash散列支持SHA、SHA-224、SHA-256、SHA-384、SHA-512、MD2、MD5格式的转换,并且可以在Decoder界面进行多次编码解码的转换。
3.Intruder
(1):Intruder是一个定制的高度可配置的工具,可以对Web应用程序进行自动化攻击,如通过标识符枚举用户名、ID和账户号码、模糊查找、SQL注入、跨站、目录遍历等。
(2):它的工作原理是Intruder在原始请求数据的基础上,通过修改各种请求参数获取不同的请求应答。在每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的对比分析获得需要的特征数据。
(3):Burp Intruder通常用于以下场景:
- 标识符枚举:Web应用程序经常使用标识符引用用户、账户、资产等数据信息。如用户名、文件ID和账户号码。
- 提取有用的数据。在某些场景下,不是简单的识别有效标识符,而是通过简单标识符提取其他数据。
- 模糊测试。很多输入型的漏洞(如SQL注入、跨站点脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。可以结合Payload自动化地对Web应用程序进行模糊测试。
4.Repeater
(1):Burp Repeater是一个手动修改、补发个别HTTP请求,并分析它们的响应的工具。它最大的用途就是能和其他Burp Suit工具结合起来使用。可以将目标站点地图、Burp Proxy浏览记录、Burp Instruder的攻击结果,发送到Repater上,并手动调整这个请求来对漏洞的探测或攻击进行微调。
(2):在渗透测试过程中,我们经常使用Repeater进行请求与响应的消息验证分析,修改请求参数、验证输入的漏洞;修改请求参数、验证逻辑越权;从拦截历史记录中捕获特征性的请求消息进行重放。
(3):在Repeater的操作界面中,左边的Request为请求消息区,右边的Request为应答消息区,请求消息区显示的是客户端发送的请求消息的详细信息。当编辑完请求消息后,单击"GO"按钮即可发送请求给服务器。
(4):应答消息区显示的是对对应的请求消息单击"GO"按钮后,服务器端的反馈消息,通过修改请求消息的参数来比对分析每次应答消息之间的差异,能更好的帮助我们分析系统可能存在的漏洞。
5.Comparer
(1):Burp Comparer在Burp中主要提供一个可视化的差异比对功能,来对比分析两次数据之间的区别,使用的场合有:
- 枚举用户名的过程,对比分析登录和失败时,服务器端返回结果的区别
- 使用Intruder进行攻击时,对于不同的服务器端响应,可以很快分析出两次响应的区别在哪里
- 进行SQL注入的盲注测试时,比较两次响应的差异,判断响应结果与注入条件的关联关系。
(2):使用Comparer时有两个步骤:第一步是加载数据,第二步是差异分析。
(3):Comparer数据加载的常用方式如下:
- 从其他Burp工具通过上下文菜单转发过来
- 直接粘贴
- 从文件里加载
(4):加载完成后,如果选择两次不同的请求或应答消息,则下方的Words和Bytes按钮将被激活,此时可以选择文本比较或字节比较。
6.Sequencer
(1):Burp Sequencer是一种用于分析数据样本随机性质量的工具。可以用它测试程序的会话令牌(Session token)、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能够很好的降低这些关键数据被伪造的风险。
(2):Burp Sequencer主要由信息截取(Live Capture)、手动加载(Manual Load)和选项分析(Analysis Options)三个模块组成。
(3):在获取信息后,单击Load按钮加载信息,然后单击"Analyze now"按钮进行分析。