1.BurpSuite简介
Burp Suite 是用于攻击web 应用程序的集成平台,它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。
它主要用来做安全性渗透测试,可以实现拦截请求、Burp Spider爬虫、漏洞扫描等,你可以理解为它
是Fiddler、Postman等多种工具的结合体。
2. BurpSuite之JDK环境安装
BurpSuite是基于java开发的工具,所以需要jdk8+的支持。
- 安装JDK8和JDK 11,并配置双jdk环境变量
- 下载BurpSuite : https://portswigger.net/burp
- 安装BurpSuite ,选择BurpSuite版本为2.0.11版本(jdk8即可)
- 激活BurpSuite
这里需要注意:JDK8,默认安装了JRE,但是JDK11,需要手动安装
设置双JDK环境变量(高版本的burpsuite需要11,低版本需要8):
3. BurpSuite功能模块介绍
BurpSuite的常见功能如下,我会在后续课程中进行详细的讲解。
- 仪表盘:仪表盘,扫描启动、暂停,用于显示任务、日志信息等
- 目标:设置工作的目标范围(URL),以及报文过滤、报文展示等功能
- 代理:拦截HTTP/s请求的代理服务器,作为web浏览器与服务器的中间人,允许拦截、修改数据流
- 测试器,入侵功能,对web应用程序进行攻击,还可以漏洞和用、Web应用程序模糊洳试、暴力破解等。
- 重发器:通过手动来触发单词HTTP请求,并分析应用程序的响应句
- 定序器:会话模块,用于分析那些不可预知的应用程序会话令牌和重要数据的随机性的工具。
- 解码器:是一个进行手动执行或对应用程序数据者智能解码编码的工具对比器:对比模块,对数据进行差异化分析
- 插件扩展:可以加载BP拓展模块和第三方代码
- 设置模块:可以设置项目、用户等信息
:
4. 漏洞扫描
Burpsuite 提供了检测web系统的各种漏洞,可以使用自动化的方式针对系统进行普通漏洞类型的渗透测试,从而能使得我们把更多的精力放在其它的需要人工验证的漏洞上。
BurpSuite的漏洞扫描功能可以结合目标和仪表盘两个功能模块实现。
4.代理功能
Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。通过拦截,Burp Suite以中间人的方式,可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测试的目的。
在日常工作中,我们最常用的web客户端就是的浏览器,我们可以通过代理的设置,做到对web浏览器的流量拦截,并对经过Burp Suite代理的流量数据进行处理。
5.测试器功能
对web应用程序进行自动化攻击。此功能有多种用途,如漏洞利用、模糊测试、进行暴力破解等。
1、目标设置
由代理发送过来请求的目标主机及端口信息。
- 攻击目标:请设置攻击目标的详细信息。
- 主机: 39.101.167.251
- 端口: 80
2、位置设置
在这个模块可以设置攻击的参数,及攻击使用的类型。
- Sniper-狙击手
- Battering ram-破城锤
- Pitchfork-音叉
- Cluster bomb-集束炸弹
3、有效载荷
在这添加载荷,可以添加自定义的字典,也可以使用字典文件进行爆破。
4.入侵攻击
展示入侵爆破的数据与执行过程 。
5.重发器功能使用
手动操作来触发单独的HTTP请求,并进行应用程序响应的工具,此功能用于根据不同的情况修改和发送相同的请求并分析,通过调整Request的参数,不断尝试,通过Response查看状态,从而节省在浏览器中操作的时间。
在渗透测试过程中,我们经常使用Repeater进行请求与响应的消息验证分析,修改请求参数、验证输入的漏洞;修改请求参数、验证逻辑越权;
6.定序器功能使用
BurpSuite的定序器是一款用于检测数据样本随机性质量的工具,通常用于检测访问令牌(session. token)是否可预测、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。
7.解码器功能使用
解码器是一个进行手动执行或对应用程序数据者智能解码编码的工具。此功能可用于解码数据找回原来的数据形式,或者进行编码和数据加密。
由解码选项(Decode as)、编码选项(Encode as)、散列(Hash)构成。
编码、解码选项,目前支持URL、HTML、Base64、ASCII、十六进制、八进制、二进制和GZIP。Hash散列支持SHA、SHA-224.SHA-256、SHA-384、SHA-512、MD2、MD5格式的转换。
8.对比器功能使用
通常是通过一些相关的请求和响应得到两项数据的一个可视化“差异”,此功能主要用于执行任意两个请求,响应或任何其他形式的数据之间的比较。
使用的场合有:
- 枚举用户名的过程,对比分析登录和失败时,服务器端返回结果的区别
- 使用Intruder进行攻击时,对于不同的服务器端响应,可以很快分析出两次响应的区别
- 进行SOL注入的盲注测试时,比较两次响应的差异,判断响应结果与注入条件的关联关系
第一步是加载数据
第二步是差异分析
8.1 请求或者响应对比
8.2 外部文件导入对比