接口测试之——Burp Suite安装及截包、重放攻击
Burp Suite可以说是Web安全工具中的瑞士军刀,打算写几篇Blog以一个小白的角度去学习Burp Suite(简称BP),会详细地说一下的用法,说明一下每一个部分是什么功能,主要通过图的备注来说明各个按钮是什么功能。有什么错误也希望走过路过的大佬们指出,由于是说基本用法所以比较基础,各种大佬大神可以绕过啦哈哈。
BP由PortSwigger公司开发,由Burp Free和Burp Professional两个版本。
Burp Suite安装
● 1.首先下载安装JAVA JDK(因为burpsuite 是java平台下的,所以电脑要有Java的环境)
jdk 去官网下载就行,安装完jdk直接双击打开就行,附上下载链接
附上相关安装图片:(图2时按自己的需求更改安装目录)
![](https://img.haomeiwen.com/i6900654/cec0c7e9c8cf35ae.png)
![](https://img.haomeiwen.com/i6900654/3baf18c9dd342199.png)
2.下载安装burpsuite
附上图片:
![](https://img.haomeiwen.com/i6900654/910314af40ca1a66.png)
(双击BurpHelper,点击run)
![](https://img.haomeiwen.com/i6900654/84152790f7bb37a1.png)
(导入burpsuite文件)
![](https://img.haomeiwen.com/i6900654/a2b524119cfdf6e4.png)
(点击两次I accept)
![](https://img.haomeiwen.com/i6900654/b67679cf856222da.png)
(点击next,start burp。安装完成。)
![](https://img.haomeiwen.com/i6900654/8b5f3cbdae4f497f.png)
对照上图介绍一下burpsuite:
▲ Target: 获取目标应用程序的详细信息。
▲ Proxy:Proxy是BurpSuite最核心的部分,通过拦截,查看和修改所有的请求和响应您的浏览器与目标Web服务器之间传递。
▲ Spider:Burp Spider 能使你清楚地了解到一个 web 应用程序是怎样工作的,让你避免进行大量的手动任务而浪费时间,在跟踪链接,提交表单,精简 HTNL 源代码。可以快速地确人应用程序的潜在的脆弱功能,还允许你指定特定的漏洞,如 SQL 注入。
▲ Scanner:是一个进行自动发现web应用程序的安全漏洞的工具。与现有的手动执行进行的 web 应用程序半自动渗透测试的技术方法很相似。
▲ intruder:它可以自动实施各种定制攻击,包括资源枚举、数据提取、模糊测试等常见漏洞等。在各种有效的扫描工具中,它能够以最细化、最简单的方式访问它生产的请求与响应,允许组合利用个人智能与该工具的控制优点。
▲ sequencer: 对会话令牌,会话标识符或其他出于安全原因需要随机产生的键值的可预测性进行分析。
▲ Decoder: 转化成规范的形式编码数据,或转化成各种形式编码和散列的原始数据。它能够智能识别多种编码格式,使用启发式技术。
▲Compare: 执行比较数据之间的任何两个项目。
Burp Suite代理设置
1.1 Proxy主页面
![](https://img.haomeiwen.com/i6900654/20647335bf295dc7.png)
1.2 Proxy配置界面
点击Options,进入Proxy配置界面:
1.2.1 Proxy Listeners
配置部分能看到,BP默认侦听8080端口,可以进行增添、修改的操作:
![](https://img.haomeiwen.com/i6900654/9b1ecf148deb7574.png)
可以进行增添、修改侦听的代理
页面点击Request handling配置对请求的处理:
![](https://img.haomeiwen.com/i6900654/c36a982a3b9346c8.png)
这里解释一下不可见代理:
许多程序并没有像大部分浏览器那样有能让客户选择开启代理的功能,这时如果想要开启代理要使用Invisible proxy,要利用DNS欺骗,如客户端要访问www.A.com,首先要通过DNS欺骗,将BP的IP地址解析为www.A.com,因此客户端会把所有的流量发送给BP,再由BP实现代理,由于请求包中请求的IP换成了BP的IP,因此对要访问的www.A.com要设置对应的IP。这是在Projects options/Connections/Host Resolution中配置(这里实在Projects options模块中配置哟):
![](https://img.haomeiwen.com/i6900654/6a84d862ea56db76.png)
如果要访问多个域名,可以生成多个网卡,之后在新建的每个网卡上进行侦听。
接着说Proxy Listeners下面的证书部分,点击Import/export CA certificate。
对HTTPS流量访问的时候,需要伪造证书,通过自签名的证书实现加密流量的截断,解密后进行分析修改再重新加密发给真实服务器。添加证书后不会再在访问HTTPS时报证书错误。
通常为导入公钥证书
![](https://img.haomeiwen.com/i6900654/83e35819a8284728.png)
使用了BP作为代理时,另一种方式得到证书:
在开启代理后访问:http://burp,点击CA Certificate,进行保存CA证书:
![](https://img.haomeiwen.com/i6900654/bba9123b64f8b100.png)
把上面获得证书后在浏览器中导入。
1.2.2 Intercept Client Requests
BP默认是只截断客户端向服务器请求的页面,不拦截从服务器到客户端返回的流量,下面看截断客户端向服务器请求的设置:
![](https://img.haomeiwen.com/i6900654/2e7350e9c33c9e91.png)
1.2.3 Intercept Server Responses
![](https://img.haomeiwen.com/i6900654/367ae9f198d13546.png)
1.2.4 Response Modification
![](https://img.haomeiwen.com/i6900654/19119daa1e6b506b.png)
1.2.5 Match and Replace
![](https://img.haomeiwen.com/i6900654/d984224f0dea64cf.png)
1.2.6 SSL Pass Through
是关于SSL证书的,让所有的加密流量通过BP,只做纯的代理不截获内容。
![](https://img.haomeiwen.com/i6900654/bf1029910aee469d.png)
1.2.7 Miscellaneous
杂项部分
![](https://img.haomeiwen.com/i6900654/cce6d1a4527d933f.jpg)
1.3 Proxy历史页面
点击HTTP histroy,进入Proxy历史界面,所有访问请求过程会保存在HTTP History处:
![](https://img.haomeiwen.com/i6900654/817b94729e58aa73.png)
手机端抓包配置
![](https://img.haomeiwen.com/i6900654/6a109d5b65e457d8.jpg)
在手机端连接PC的wifi,并且设置代理IP与端口(代理IP就是上图的IP,端口是代理端口8080),这里端口号可以随意更改
![](https://img.haomeiwen.com/i6900654/7e934298663ad71d.jpg)
访问网页输入代理IP和端口,下载证书,这里注意:修改下载的根证书格式,修改为.cer
然后设置-->安全里面导入证书
安装完了证书,可以用手机访问应用,就可以看到截取到的数据包了。抓包前请关闭intercept,否则会发现手机无法抓包
![](https://img.haomeiwen.com/i6900654/26d26f5a071829f2.jpg)
这样在浏览器进行操作就可以抓到包:
![](https://img.haomeiwen.com/i6900654/949cff0b91b181e4.jpg)
intercept截包篡改
intercept功能类似于fiddler、Charles打断点,在进行操作抓取具体接口时,设置intercept状态为on打开状态,这样就可以截取特定接口包,进行篡改
![](https://img.haomeiwen.com/i6900654/6491812be7a579fd.jpg)
可以直接在Raw这进行修改包的内容,最后要让包正常传递过去,点击Forward即可。不要这个包,点击Drop,就可以丢弃。
修改参数后,点击Forward放包,然后关闭intercept,在history里面就可以看到篡改前后效果了。
![](https://img.haomeiwen.com/i6900654/303e18649ffdffec.jpg)
![](https://img.haomeiwen.com/i6900654/d339ac3d3379067f.jpg)
![](https://img.haomeiwen.com/i6900654/d2cac81b446b8df0.jpg)
Repeater重放攻击
Burp的repeater可以测试不同输入和场景下重发同一个请求,并分析每次请求对应的响应。这共功能在测试漏洞的时候,非常好用,可以根据应用对不同输入的不同响应,进行后续操作,进而识别或利用可能存在的缺陷(来源于配置、编码、设计)。
右键单击这个请求,选择Send to Repeater
![](https://img.haomeiwen.com/i6900654/36f30d19124ec57e.jpg)
接下来我们切换到Repeater标签页,点击Go,然后查看响应
![](https://img.haomeiwen.com/i6900654/152c031f1ddd8643.jpg)
在Request区域(上图左侧),我们可以看到发给Server的raw request。第一行给出的信息由:请求为POST方法,请求的URL和协议(HTTP 1.1)。第二行起一直到Cookie,是请求头参数。然后一行空行后接POST请求参数(之前在表单里提到的)。在Response区域有五个标签页:Raw, Headers, Hex, HTML, Render。这几个标签页用不同的格式展示了相同的响应信息。
我们可以在Request区域随意修改请求,然后再次点击Go,就会从发请求,返回新的响应。特别像某些接口发送验证邮件、短信、意见反馈接口,可以重复多次点击Go,进行攻击。
Target界面
Target会显示出访问过的、以及页面中有的链接URL。黑色的说明是有真正发生过通信过程的,灰色的只是爬网爬出的,没有真实访问。
对站点右键,就可以调动BP使用其他模块,例如爬网、扫描、比较等。
Ps:BP右键能让你感受到它的模块之间无缝交换信息,所以说我写这篇东西排版还是很纠结的哈哈,所以下面先尽量不涉及其他模块介绍下Target模块的大体功能~但是这样的话Target模块部分就比较短啦,各位客官莫介意。
![](https://img.haomeiwen.com/i6900654/63fba5b16e5e97b4.png)
可以通过加入到Sope,利用Scope过滤不想看的内容:
点击Filter,增加过滤规则:
![](https://img.haomeiwen.com/i6900654/87d1d0c7033d0f30.png)
设置了Scope后会在Scope页面自动生成用于过滤的正则表达式:
![](https://img.haomeiwen.com/i6900654/f2be1fbb24678129.png)
添加注释:
![](https://img.haomeiwen.com/i6900654/2292c540f33603ee.png)