【THM】Burp Suite:Extender(Burp Suite-扩展器)-学习

发布时间 2023-04-12 08:59:56作者: Hekeats

本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/burpsuiteextender

本文相关内容:了解如何使用Extender来扩展Burp Suite的功能

img

Extender-扩展器主界面

Extender界面如下图所示:

image

Extender的默认视图将为我们提供已加载到Burp Suite中的扩展的概览,在Extender的Extensions子选项卡的顶部,可以看到一个关于已安装扩展的列表,我们可以选择为当前项目激活或者停用这些扩展。(上图中全为空白,这表示当前并没有添加任何扩展)

在Extensions子选项卡顶部,我们可以使用"remove"按钮卸载扩展,也可以使用"Add"按钮 选择本地磁盘上的文件安装新的扩展;所谓的Burp扩展可以是BApp商店中的扩展,也可以是Internet所提供的第三方扩展。

在Extensions子选项卡顶部,我们还可以使用"Up"和"Down"按钮来控制已安装扩展的列表顺序,Burp扩展将基于扩展列表按降序调用;换句话说:所有通过Burp的流量都将按顺序通过每个扩展,根据扩展列表自上而下,在调用与修改请求相关的Burp扩展时,这一点非常重要,因为有些Burp扩展可能会相互抵消或相互阻碍。

在Extensions子选项卡的窗口底部,我们可以看到当前所选择的Burp扩展模块的详细信息、输出和错误。

答题

通过阅读本小节内容,能够帮助我们回答以下问题。

image

Extender-BApp Store(Burp扩展商店)

Burp App Store(或简称BApp Store)为我们列出了Burp的官方扩展 并允许我们将官方Burp扩展与Burp Suite无缝集成;这些官方Burp扩展可以用各种语言编写,最常见的是使用Java(自动集成到Burp框架中)编写或者使用Python(需要Jython解释器)编写。

为了了解BApp商店,我们可以从安装Java所编写的扩展开始。

我们先切换到Extender中的"BApp Store"子选项卡并搜索"Request Timer",然后我们就能找到名为"Request Timer"的扩展,我们可以通过点击选中该扩展,最后选择"安装"即可:

image

Request Timer扩展是一个由Java语言编写的Burp扩展模块,它允许我们记录每个请求所对应的响应时间,这对于发现(和利用)基于时间的漏洞非常有用,该扩展有助于发现潜在的定时攻击(以便我们进行利用)。例如,如果一个登录表单处理包含有效用户名的请求所需的时间比处理不存在的帐户所需的时间多一秒,那么我们就可以使用一个可能的用户名列表来暴力攻击登录表单,并根据时间的差异来判断哪些用户名是有效的。

image

通过查看上图,我们可以发现Burp界面的顶部主菜单中出现了一个新选项卡,名为"Request Timer";不同的扩展有不同的行为——有些扩展会在右键单击上下文菜单中添加一个新项目,有些扩展会在Burp的顶部主菜单栏中创建一个全新的选项卡。

Extender-Jython

如果我们想在Burp Suite中使用Python编写的扩展模块,我们需要下载并包含单独的Jython Interpreter(解释器) JAR文件。

Jython解释器是Python的Java实现,通过访问Jython官网,我们可以选择将Jython安装到我们的系统中,或者将其作为独立的Java存档(JAR-Java archive)文件下载;在将Jython与Burp集成时,我们一般需要把Jython作为一个独立的存档。

在处理Ruby编写的扩展模块并集成JRuby时,我们需要做同样的事情,我们在此并不讨论JRuby集成的情况,因为:1.Python编写的Burp扩展模块更常见;2.JRuby与Jython的集成过程完全相同。

首先,我们需要从 Jython website下载Jython JAR归档文件的最新副本,我们选择Jython独立选项进行下载:

image

将JAR文件保存在Kali攻击机的磁盘上的某个位置,然后切换到Extender中的"Options"子选项卡。

向下滚动到"Python Environment"部分,并将"Location of Jython standalone JAR file"设置为JAR归档文件的路径:

image

完成上述配置后,我们就可以从BApp商店安装Python编写的扩展模块了;通过上述这个非常简单的步骤,我们就可以显著增加可用的Burp扩展的数量。

注意:由于Java的多平台特性,所以在任何操作系统上将Jython添加到Burp Suite都可以通过执行完全相同的步骤来完成。

我们可以通过以下链接下载JRuby JAR归档文件的最新副本: https://www.jruby.org/download

Extender- Burp Suite API

Extender中公开了大量的API端点,当与Burp Suite集成时,新的扩展模块可以勾选这些API端点。

我们可以在Extender的"APIs"子选项卡中查看这些API:

image

"APIs"子选项卡的左侧列表中的每一项都记录了一个不同的API端点——这些端点都可以由Burp扩展模块调用;也就是说,此处的API端点可为开发人员在编写扩展模块时提供很多强大的功能,从而可以使编写好的Burp扩展能够与Burp Suite的现有功能无缝交互。

我们可以使用Burp Suite所支持的编程语言与上述这些API端点交互,进而编写功能强大的Burp扩展模块;具体而言,我们可使用以下语言来编写Burp扩展:Java(本机)语言、Python语言(通过Jython解释器)和Ruby语言(通过JRuby解释器)。

如果你对为Burp Suite编写自己的扩展模块特别感兴趣,PortSwigger官方为此提供了一个很好的参考:

https://portswigger.net/burp/extender/writing-your-first-burp-suite-extension

小结

本文主要介绍了Burp Suite的扩展器模块,我们不仅可以从BApp商店中安装许多强大的Burp扩展模块,还可以通过使用Java、Python 或 Ruby来编写第三方的Burp扩展模块(在实际编写Burp扩展时,将会涉及到API端点的调用) 。

到目前为止,我们已经完成了Burp Suite工具的整个学习模块,我们主要介绍的是Burp Suite社区版的使用,其他的版本还有Burp Suite专业版以及Burp Suite企业版。

关于Burp Suite专业版的第三方获取链接如下:

https://pan.quark.cn/s/2d953466234b