Burp Suite 介绍

来源:互联网 发布:汽车导航软件安装 编辑:程序博客网 时间:2024/05/18 03:46

Burp Suite是可用于Web应用程序测试的最佳工具之一。其各种各样的功能可以帮助我们执行各种任务,从截取请求并即时修改请求,扫描Web应用程序的漏洞,强制登录表单,执行会话令牌的随机性和许多其他功能。在本文中,我们将对Burp Suite进行一个完整的演练,讨论其所有主要功能。

道德的黑客培训 - 资源(INFOSEC)

默认情况下,Backpack 5中提供了Burp Suite(免费版)。专业版可以从这里下载  免费版本中不提供的一些功能是Burp Scanner,任务计划程序,目标分析器等。总的来说,它具有以下功能。

1)代理 - Burp Suite附带代理,默认情况下运行在端口8080上。使用此代理,我们可以拦截和修改从客户端系统流向Web应用程序时的流量。为了使用这个代理,我们必须配置我们的浏览器来使用这个代理。如果我们想要的话,我们也可以丢弃数据包,以免它们达到预期的目的地,或将流量重定向到特定主机等。

2)蜘蛛 - Burp Suite的蜘蛛功能用于抓取寻找新链接,内容等的Web应用程序。它会自动提交登录表单(通过用户定义的输入),以便发现任何内容,并从响应中查找新内容。然后可以将该信息发送到Burp Scanner,以对蜘蛛提供的所有链接和内容执行详细扫描。

3)扫描仪 - 用于扫描Web应用程序的漏洞。扫描类型可以是被动的,主动的或用户引导的。在测试期间可能会发生一些假阳性。重要的是要记住,没有自动扫描仪在其结果中百分之百准确。不幸的是,Burback Scanner不适用于Backtrack 5中包含的免费版。

4)入侵者 - 此功能可用于各种目的,如利用漏洞,模糊网络应用程序,进行暴力攻击等。

5)中继器 - 此功能用于修改和发送相同的请求多次,并分析所有这些不同情况下的响应。

6)排序器 - 此功能主要用于检查Web应用程序提供的会话令牌的随机性。它执行各种高级测试来计算出来。

7)解码器 - 此功能可用于解码数据以获取原始格式,或对数据进行编码和加密。

8)比较器 - 此功能用于执行任何两个请求,响应或任何其他形式的数据之间的比较。当将响应与不同输入进行比较时,此功能可能很有用。

1)代理

代理功能允许我们拦截和修改请求。为了拦截请求并操纵它们,我们必须配置浏览器以通过Burp的代理来指导流量,默认值为127.0.0.1:8080。

一旦完成,打开Burp Suite。转到  代理,然后  拦截  ,并确保拦截已打开。

转到警报选项卡,我们可以看到代理服务正在端口8080上运行。我们还可以通过转到代理下的选项选项卡来更改此配置。

让我们看看运行代理的所有选项。转到代理下的选项选项卡。

这里我们可以编辑代理正在侦听的端口,甚至添加一个新的代理侦听器。Burp还可以选择向SSL保护的网站提供证书。默认情况下,Burp在安装时创建自签名CA证书。当前检查的选项,即  生成CA签署的每个主机证书  将生成我们正在连接到由Burp的CA证书签名的特定主机的证书。我们唯一关心的是减少用户在连接到SSL保护的网站时获得的警告数。

如果我们不检查在loopback接口中的  listen  选项,那么这意味着打包代理可以作为网络上其他系统的代理。这意味着同一网络中的任何计算机都可以使用此Burp代理作为代理,并通过它传递流量。

在  非代理感知客户端支持无形的代理  选项用于那些不知道他们用的是代理客户端。这意味着代理的选项没有在浏览器中设置,而在其他地方,例如,在hosts.txt文件中。唯一的问题是,在这种情况下,请求在与浏览器本身中设置代理选项时的请求有所不同,因此Burp需要知道是否从非代理感知客户端接收流量。该  重定向到主机,重定向到端口  选项将客户端重定向到我们在选项中指定的主机和端口。

同样,我们可以根据我们在这里指定的规则拦截请求和响应。当我们想要在非常高的流量环境中截取一些请求时,这可能是一个方便的功能。

有可以修改从响应中收到的HTML。我们可以取消隐藏隐藏的表单域,删除JavaScript等。同样地,还有一个选项来查找特定的模式并用自定义字符串替换它。我们需要在这里指定正则表达式。Burp将解析请求或响应寻找此模式,并将其替换为自定义字符串。

现在我们已经在浏览器中正确设置了Burp Suite和配置,我们可以拦截请求。请注意,每当我们发送请求时,它将被Burp Suite拦截,我们将不得不手动转发。因此,建议只有当您想要查看数据包的内容时,才会保留“拦截开启”选项。

打开浏览器并开始浏览。我们将看到Burp Suite正在拦截该请求。因此我们的代理正在工作。我们可以右键单击它,并将请求发送到Burp Suite中的各种其他工具进行分析。

2)蜘蛛

Burp Spider用于映射Web应用程序。它将自动抓取Web应用程序查找链接,并提交其找到的任何登录表单,从而提供对整个应用程序的详细分析。然后可以将这些链接传递给Burp Scanner,以使用扫描仪提供的信息执行详细扫描。在这种情况下,我将使用DVWA(Damn Wulnerable Web Application)上的蜘蛛工具。要做到这一点,只需使用浏览器去应用程序DVWA,确保Burp Suite中的拦截是打开的,并获取Burp Suite拦截的请求。右击所拦截的请求,然后点击  发送到蜘蛛

一旦这样做,弹出一个警报,要求我们将该项目添加到作用域。点击  范围基本上定义了我们要在其上运行测试的目标区域。

如果我们进入站点地图  下的  目标选项卡  ,我们将看到已经在目标中添加了url。此外,我们还可以看到http://google.com等其他目标已被添加到目标列表中。Burp套件会在使用Burp代理时浏览网页时自动添加目标。我们可以通过右键单击任何目标并单击添加项目到范围目标  添加到我们的范围

如果我们进入  Scope  选项卡,我们发现应用程序dvwa已被添加到作用域。

现在转到Spider选项卡,然后单击  选项这里我们可以在应用程序中运行Burp Spider时设置各种选项。我们可以要求它检查robots.txt文件,它将尝试爬行到网站管理员不允许索引搜索引擎的目录。浏览时,另一个重要的选择是  被动蜘蛛基本上,Burp Spider可以在被动和主动模式下运行。当我们使用Burp的代理浏览Web应用程序时,这要求Burp Spider继续扫描新的链接和内容。

另一个重要的选项是  应用程序登录每当Burp Spider抓取登录表单时,它可以在此处自动提交我们提供的凭据。我已经要求Burp Spider提交凭据  管理员/密码,  因为这些是DVWA中使用的凭据。因此,Burp Spider将自动提交这些凭据,并继续前进寻找额外的信息。您也可以根据需要更改线程数。

要开始覆盖应用程序,只需右键单击目标来显示DVWA的分支(在本例中为dvwa),然后单击  spider此分支

这将启动Burp Spider。如果我们进入Spider控制选项卡,我们可以看到正在进行的请求。我们还可以为Burp Spider定义一个自定义范围。

一旦它完成运行,我们将看到很多新的URL为dvwa分支。这提供了有关Web应用程序的非常有用的信息。然后,我们可以将这些URL发送到Burp Scanner等其他Burp工具(仅在专业版中可用),并扫描它的漏洞。

3)入侵者

Burp Intruder可用于利用漏洞,模糊,进行暴力攻击等诸多目的。在这种情况下,我们将使用Burp Suite中的入侵者功能对DVWA进行暴力攻击。浏览到DVWA,然后点击  强力输入任何用户名/密码,确保   在Burp Suite中打开Intercept,然后单击  Login

该请求将被Burp Suite拦截,右键单击并点击  发送到入侵者

这将会将请求信息发送给入侵者。转到  入侵者  标签。现在我们必须配置Burp Suite来发动暴力攻击。在  目标  标签下,我们可以看到它已经通过查看请求来设置目标。

现在转到职位标签,在这里我们可以看到我们以前发往入侵者的请求。请求中突出显示某些内容。这基本上是Burp Suite的一个猜测,以确定在暴力攻击中每个请求会发生什么变化。因为在这种情况下,只有用户名和密码将随着每个请求而改变,所以我们需要相应地配置Burp。

点击右侧的清除按钮。这将删除所有突出显示的文字。现在我们需要将Burp配置为仅将用户名和密码设置为此攻击的参数。突出显示此请求中的用户名(在这种情况下为“infosecinstitute”),然后单击  添加同样,从该请求中突出显示密码,然后单击  添加这将添加用户名和密码作为第一个和第二个参数。完成后,您的输出应该看起来像这样。

接下来我们需要做的是设置攻击类型,这个攻击类型是我们刚刚修改的请求的顶端。默认设置为狙击手。然而,在我们的例子中,我们将使用攻击类型“Cluster Bomb”。根据  Burp的  来自portswigger.net 的文档,   这里是不同类型的攻击之间的区别。

狙击手  - 这使用一套有效载荷。它依次瞄准每个位置,并依次将每个有效载荷插入该位置。在给定请求期间未定位的位置不受影响 - 位置标记被移除,并且在模板之间出现的任何文本保持不变。这种攻击类型对于单独测试一些常见漏洞(即跨站点脚本)的数据字段很有用。攻击中产生的请求总数是有效载荷集中的位置数和有效载荷数的乘积。

打击压头  - 这使用一套有效载荷。它遍历有效载荷,并将同一有效载荷一次插入所有定义的位置。这种攻击类型在攻击需要在HTTP请求中的多个位置插入相同的输入(即,cookie头部和消息体内的用户名)时是有用的。攻击中生成的请求总数是有效负载集中的有效载荷数。

 - 这使用多个有效载荷集。每个定义的位置有一个不同的有效载荷集(最多为8个)。攻击同时遍历所有有效载荷集,并将一个有效负载插入到每个定义的位置。例如,第一请求将从有效载荷集合1插入第一有效载荷到位置1,将有效载荷从载荷集合2插入到位置2.第二个请求将从有效负载集合1插入第二有效载荷到位置1,有效负载设置2到位置2,依此类推。这种攻击类型在攻击需要不同但相关输入插入到HTTP请求中的多个位置(即,一个数据字段中的用户名以及与另一个数据字段中的该用户名对应的已知ID号)时非常有用。

集群炸弹 - 这使用多个有效载荷集。每个定义的位置有一个不同的有效载荷集(最多为8个)。攻击依次迭代每个有效负载集,以便测试有效负载组合的所有排列。例如,如果存在两个有效负载位置,则攻击将将来自有效载荷集合1的第一有效载荷置于位置1,并且遍历位置2中有效载荷集合2中的所有有效载荷; 然后将其将有效载荷集合1的第二有效载荷置于位置1,并且遍历位置2中有效负载集2中的所有有效载荷。该攻击类型在攻击需要将不同且不相关的输入插入到HTTP请求(即,一个参数中的用户名,另一个参数中的未知密码)。

我们可以在下面的图片中看到,我们的攻击类型设置为“Cluster Bomb”。

转到有效载荷选项卡,确保选择了有效载荷1,单击  加载  并加载包含用户名列表的文件。在我的情况下,我正在使用一个非常小的文件进行演示。加载文件后,将显示所有用户名,如下图所示。

同样选择有效载荷集2,点击  加载  并加载包含密码列表的文件。

现在转到选项标签,并确保在结果下设置“存储请求”和“存储响应”选项。看看所有的选项,看看你是否需要或不需要任何这些选项。

好的,我们现在准备发动攻击。点击   左上角的入侵者,点击  开始攻击我们将看到一个窗口弹出所有的请求。

那么我们如何知道哪个请求是成功的?通常,成功的请求将具有与不成功的请求不同的响应,或将具有不同的状态响应。在这种情况下,我们看到用户名“admin”和密码“password”的请求的响应长度与其他响应不同。

我们点击不同响应大小的请求。如果我们点击响应部分,我们在响应中看到文本“欢迎使用密码保护区域admin”。这确认了此请求中使用的用户名/密码是正确的。

我建议您更详细地探索Burp Intruder,因为它是Burp Suite中最强大的功能之一。

4)中继器

使用Burp Repeater,我们可以手动修改请求,并重新发送以分析响应。我们需要向Burp Repeater发送一个请求。该请求可以从诸如入侵者,代理等的各个地方发送给它

让我们向Repeater发出一个请求,我们刚从DVWA进行的入侵攻击。要将请求发送给入侵者,只需右键单击请求,然后单击  发送到入侵者

如果我们转到Repeater选项卡,我们可以看到请求。我们还看到有3个选项卡,名称为1,2和3.在Burp Repeater中,每个请求都使用一个选项卡。

我们还可以看到请求的参数,标题,十六进制和原始格式。发送请求之前,我们可以修改任何一个。

我们只需将用户名,密码更改为正确的用户名,即username = admin和password = password,然后单击  Go这将发送请求。

我们可以分析响应部分的响应。我们再次可以看到响应的参数,标题,十六进制和原始格式。渲染选项显示页面,就像它在浏览器中显示一样,尽管它不完全可靠。

5)排序器

Burp Suite Sequencer用于计算Web应用程序生成的会话令牌的随机性。这是因为会话令牌通常用于验证用户,因此不应该被泄露。Web应用程序对会话令牌具有高度的随机性是非常重要的,因此暴力攻击不能成功。我们需要发送一个请求,该请求将会话令牌返回给定序器,然后Sequencer然后重复发送请求,从而获得大量的会话ID。然后通过各种统计测试来传递这些会话ID,以确定随机性。

我们发送一个请求,返回一个会话令牌到Sequencer。右键单击请求,然后单击  发送到排序器

在音序器中,我们可以看到它自动识别了ID参数。我们也可以使用手动选择自己选择,或者我们可以使用cookie和表单域下拉框来选择我们认为是会话标记的值。

点击  开始捕获  开始进程。

我们可以看到正在接收的请求和不同的令牌被接收。在开始分析之前,样本大小至少为100-200个令牌是很好的。但是,令牌越多,测试结果就越好。一旦您认为已经捕获到足够的令牌,请点击  现在分析我们将看到Burp Sequencer正在执行所有测试。

结果显示如下图所示。我们可以看到,样本中的总体随机性估计是非常好的。您可以在标签之间切换以查看不同类型分析的结果。

Burp Suite仍将继续捕获令牌,以便您可以在收集更多令牌后再次执行测试。检查不同类型的测试及其工作原理是否超出了本文的范围。要了解Burp Sequencer如何实际工作,请阅读  本文

6)比较

Burp Suite Comparer工具用于对两个数据进行比较,这两个数据可能是请求,响应等。为了做到这一点,我们必须向Comparer工具提供两个数据。在这种情况下,我们将给予Comparer工具一个成功的反应,并且对我们以前进行的对DVWA的暴力攻击不成功。确保在将响应标签发送给比较器时选择响应标签,以便我们发送响应而不是请求。右键单击不成功的响应,然后单击  发送到比较器,对成功响应执行相同操作(下图中请求#11的响应)。

转到比较器选项卡。在这里,我们可以看到我们早些时候发给的两个答复。点击上半部分的第一个响应(#3)和下半部分的第二个响应(#4)。现在已经选择了两个响应来进行比较。

我们有两种方式通过单词或字节来比较两个响应。单击  单词  以通过单词进行比较。结果很清楚。虽然一个响应有一个“用户名和/或密码不正确”的消息,另一个有一个“欢迎使用密码保护区管理员”消息。

类似地,通过使用字节进行比较返回以下输出。现在你必须开始了解这个工具的重要性。

7)解码器

Burp Suite解码器可用于对编码数据进行解码,并将其恢复为其规范形式。它也可以用于对数据进行编码和加密,以获得编码和加密的表单。我们可以手动将数据粘贴到解码器中或向其发送编码的请求。在这种情况下,我将向解码器发送一个包含base64编码形式的用户名和密码的HTML Basic认证请求。右键单击请求,然后单击  发送到解码器

突出显示编码格式,然后单击  解码  ,然后单击  base64

Burp Decoder解码base64编码的字符串,并以明文形式提供用户名/密码。

您应该 在Burp Suite中检查  智能解码功能,Burp解码器智能地猜测所使用的编码并对其进行解码。虽然不完全可靠,可能会出现一些错误。

8)扫描仪

Burp Scanner是最强大的Web应用扫描仪之一。尽管像其他任何Web应用程序扫描仪一样,它并不完美,但可能会出现一些假阳性。Burp Scanner不可用于免费版本。您可以在这里找到有关Burp Scanner的更多信息  

结论

在这篇文章中,我们研究了Burp Suite - 代理,扫描仪,音序器,中继器等的几乎所有流行的功能。它可以在Web应用程序测试中有帮助的程度只能达到用户的想象,有价值的Web应用程序测试工具。

有兴趣了解更多?检查我们的道德的黑客训练课程。填写下面的表格,用于课程SYLLABUS和定价信息。

道德的黑客即时价格 - 资源

参考

  1. PortSwigger网站
    http://portswigger.net/burp/
  2. 黑客Web认证 - 第1部分
    http://resources.infosecinstitute.com/authentication-hacking-pt1/
  3. Burp Sequencer 101 
    http://blog.portswigger.net/2008/05/burp-sequencer-101.html
  4. Burp扫描仪
  5. http://portswigger.net/burp/scanner.html
转自:HTTP://resources.infosecinstitute.com/burp-suite-walkthrough/