Burp Suite想必大家都用过,但是大家未必知道它的所有功能。因此,本文的主要目的就是尽量深入介绍各种功能。BurpSuite有以下这些功能:

截获代理– 让你审查修改浏览器和目标应用间的流量。

爬虫 – 抓取内容和功能

Web应用扫描器* –自动化检测多种类型的漏洞

Intruder – 提供强大的定制化攻击发掘漏洞

Repeater – 篡改并且重发请求

Sequencer –测试token的随机性

能够保存工作进度,以后再恢复

插件*–  你可以自己写插件或者使用写好的插件,插件可以执行复杂的,高度定制化的任务

*表示需要Burp Suite Pro授权。

Intercepting Proxy(截取代理)

Intercepting proxy是针对web应用渗透测试工具的功能。Burp Suite的代理工具非常容易使用,并且能和其他工具紧密配合。要使用这个功能,第一步就是建立代理监听(Proxy–> Options功能下)。我的设置为了默认值localhost (127.0.0.1),端口为8080。

你可以点击编辑(“Edit”)进行修改,或者添加新的监听端口。一旦建立好,你就要到浏览器的网络连接设置处手动配置代理设置:

我们现在可以访问我们要测试的应用,然后看到发送的所有请求了。到Proxy –> Intercept标签页,然后确保截获功能开启(“Intercept is on”),然后就能看到所有的请求了。

你可以修改请求,然后点击“Forward”发送修改后的请求,如果不想发送某些请求你也可以点击“Drop”按钮。“Actions”按钮下还有很多其他的功能。

如果你想回过头看下前面发送的请求,你可以切换到Proxy –> HTTP History标签页,这里有所有的请求列表,还有些详情如响应的长度,MIME类型和状态码。如果你修改过请求,你会看到两个标签,分别是修改前和修改后的请求:

另一个有用的功能是自动修改请求/响应,功能位于Proxy –> Options。通过这个功能可以去除JavaScript的表单验证。你也可以用正则表达式匹配替换请求/响应:

Spider(爬虫)

当你在对web应用进行初步检查的时候,Burp Suite的spider工具非常有用。当你浏览Web应用时,它会从HTML响应内容中主动生成一份URL列表,然后尝试连接URL。要使用爬虫功能,我们首先要切换到Target–> Site Map标签,然后右键域名,选择“Add To Scope”:

所有加入的域名都在Target –> Scope标签页里。你可以手动添加域名,修改,或者添加需要配出的URL(比如如果你不希望对“联系我们”的表单进行自动化测试,就可以把它排除掉):

如果我们现在进入Spider –> Control标签,就能看到有些URL正在排队中,注意看下面,爬虫只会对scope中的域名进行测试:

回到Site Map我们可以看到URL的列表,黑色代表我们已经成功访问过那个页面,爬虫确认过是有效的。灰色代表爬虫在HTML响应中找到了这个URL但是还没有确认是否有效:

基本的设置后,我们返回到Spider –> Control标签,点击“Spider Is Paused”按钮运行工具,它会尝试连接所有之前找到的URL,包括在运行过程中找到的新的。如果过程中有表单需要填写,它会弹出表单供你填写,确保能收到有效的响应:

现在Site Map中就有整理整齐的URL了:

Spider –> Options标签下有些你可以调整的选项,如user-agent ,或者爬虫应该爬多深,两个重要的设置是表单提交和应用登录,设置好之后爬虫可以自动为你填写表单:

Intruder

Intruder是Burp Suite中最受欢迎的工具。Intruder是获取Web应用信息的工具。它可以用来爆破,枚举,漏洞测试等任何你想要用的测试手段,然后从结果中获取数据。

我举个例子来演示Intruder的使用方法。即爆破登录页面的管理员密码(假设没有帐号锁定)。首先,我们切换到Proxy-> HTTP History,右键要测试的请求,点击“Send To Intruder”:

接下来我们切换到Intruder标签,准备攻击。程序会在Target标签里自动填上请求中的host和端口。在Position(位置)标签出哦我们可以看到我们选择的请求并设置我们要攻击的位置。用鼠标高亮想要攻击的位置, 然后点击右边的“Add”,如果需要的话可以选择多个位置:

最上面的地方有多种攻击类型,本例中我们使用默认的Sniper,但实际上每种攻击类型都有特定用途:

Sniper – 这个模式使用单一的payload组。它会针对每个位置设置payload。这种攻击类型适合对常见漏洞中的请求参数单独地进行fuzzing测试。攻击中的请求总数应该是position数量和payload数量的乘积。

Battering ram – 这一模式使用单一的payload组。它会重复payload并且一次把所有相同的payload放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到多个位置的情况。请求的总数是payload组中payload的总数。

Pitchfork – 这一模式使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。请求的数量应该是最小的payload组中的payload数量。

Cluster bomb – 这种模式会使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。攻击请求的总数是各payload组中payload数量的乘积。

位置设定好之后我们切换到Payloads标签,选择攻击时使用的数据。顶部的地方你可以看到payload组。各个组都对应设置的各个位置。我们可以选择payload类型,如简易列表(Simple List)。

在那下面有一些payload选项。每个payload类型都有不同的选项,供用户为你的测试进行修改。我经常使用的是数字(Numbers),你可以设置范围,选择是连续的数字还是随机数字,还有每次攻击时的步长等。不过对于我们要搞的爆破攻击,我们只需要添加一个密码字典就行:

接下来就是点击右上角的开始攻击(Start Attack)按钮。程序就会弹出一个新的窗口,显示的是尝试的每个payload和响应的详情。我们的例子中,第六个请求获取到了正确的密码:

我们返回主窗口,然后切换到Intruder –> Options标签页,可以发现还有些别配置。其中一个很重要的是“Grep– Match”功能,这个功能可以让你基于HTML中的字符串或者正则表达式标记出结果。这些标记会在新增的栏里出现。

注:免费版的Burp Suite会对Intruder限速,专业版会更快。

Repeater(重复器)、decoder(解码器)和comparer(比较器)也很有用,但由于使用简单,在此就不再赘述了。

* 参考来源:hack-ed,vulture翻译,文章有修改,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

Burp Suite新手指南的更多相关文章

  1. Burp Suite使用详解一

    本文由阿德马翻译自国外网站,请尊重劳动成果,转载注明出处 Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解 ...

  2. Burp Suite 使用教程(上传突破利器)

    Burp Suite是一个免费的网站攻击工具. 它包括proxy.spider.intruder.repeater四项功能.该程序使用Java写成,需要 JRE 1.4 以上版本 下载该程序的源代码, ...

  3. 初识 Burp Suite

           Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程. 所有的工具都共享一个能处理并显示HTTP 消息, ...

  4. 安卓APP测试之使用Burp Suite实现HTTPS抓包方法

    APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外).所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议.Websocket.socket协议,一 ...

  5. burp suite 使用教程详解(外文翻译转)

    Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查.本文将做一个Bu ...

  6. Burp Suite使用

    Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查.本文将做一个Bu ...

  7. Burp Suite安装及详细使用教程-Intruder模块详解

    01 介绍 安装要求: Java 的V1.5 + 安装( 推荐使用最新的JRE ), 可从这里免费 http://java.sun.com/j2se/downloads.html Burp Suite ...

  8. Burp Suite使用介绍

    Burp Suite使用介绍(一)  22人收藏 收藏 2014/05/01 19:54 | 小乐天 | 工具收集 | 占个座先 Getting Started Burp Suite 是用于攻击web ...

  9. Burp Suite详细使用教程

    Burp Suite详细使用教程-Intruder模块详解 最近迷上了burp suite 这个安全工具,百度了关于这个工具的教程还卖900rmb...ohno.本来准备买滴,但是大牛太高傲了,所以没 ...

随机推荐

  1. docker学习(4) 一些常用操作

    继续docker的学习之旅,今天练习一些常用的命令: 一.镜像相关 1.1 列出本机所有镜像 docker images 后面的操作,都以ubuntu做为练习的目标. 另外:如果某些镜像文件不想要了, ...

  2. [LeetCode] Unique Substrings in Wraparound String 封装字符串中的独特子字符串

    Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz" ...

  3. [LeetCode] Shortest Word Distance II 最短单词距离之二

    This is a follow up of Shortest Word Distance. The only difference is now you are given the list of ...

  4. WIN10下安装HBASE教程

    工作需要,现在开始做大数据开发了,通过下面的配置步骤,你可以在win10系统中,部署出一套hadoop+hbase,便于单机测试调试开发. 准备资料: 1. hadoop-2.7.2: https:/ ...

  5. APP逆向常识

    SO库Linux系统下的动态库文件,就像win系统下的dll文件一样.将APK,改成RAR,在Lib目录下.dex(classes.dex)Dex是Android系统中可以在Dalvik虚拟机上直接运 ...

  6. GD库常用函数

    创建句柄 imagecreate($width, $height)                                                  //新建图像 imagecreat ...

  7. sql server 中隐藏掉无关数据库

    先贴上我实际测试的效果 方法一: Problem I have a SQL Server instance that has hundreds of databases.  Navigating th ...

  8. java第二周周学习总结

    java运算符和循环 java运算符 一.for 语句 for 语句的基本结构如下所示:for(初始化表达式;判断表达式;递增(递减)表达式){    执行语句;   //一段代码} 初始化表达式:初 ...

  9. BZOJ 3931: [CQOI2015]网络吞吐量

    3931: [CQOI2015]网络吞吐量 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1555  Solved: 637[Submit][Stat ...

  10. map

    说明 map()是python的内置函数. 定义:接收2个参数,第一个参数一般为方法:第二个参数为可迭代对象,此方法会自动迭代第二个参数,然后将获取的数据传入第一个参数. 案例操作 需求:将下面的数据 ...