本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/burpsuiteextensions
本文相关内容:了解如何使用Extensions模块来扩展Burp Suite的功能。
简介
在本文中,我们将学习Burp Suite的Extensions(扩展)功能模块,该功能允许开发人员为Burp框架创建附加模块。
虽然在本文中并未深入探讨如何编写Burp模块,但是我们将在下文中简要地检查API文档,并讨论如何使用Burp Suite BApp Store来添加新的Burp模块。
Extensions-主界面
Burp Suite中的Extensions默认界面为我们提供了关于已经加载到Extensions模块中的Burp扩展的概述,让我们来看看这个默认主界面中的不同组件:
- 扩展列表:上图界面的顶部框体会显示Burp Suite为当前项目所安装的Burp扩展列表,该列表允许我们激活或停用单个Burp扩展。
- 管理扩展:在上图Extensions默认界面的左侧,会有一些用于管理Burp扩展的选项。
- Add:我们可以使用此按钮选择本地磁盘上的文件来安装新扩展,这些扩展可以是自定义编写的Burp扩展,也可以是从官方BApp商店中获取的Burp扩展,还可以是从互联网获取的第三方Burp扩展。
- Remove:此按钮允许我们从Burp Suite中卸载所选定的Burp扩展。
- Up/Down:我们可以使用"Up/Down"按钮来控制已安装的扩展在列表中的顺序,Burp扩展将基于扩展列表按降序调用,所有通过Burp的流量都将根据扩展列表自上而下地通过每个扩展,在我们调用与修改请求相关的Burp扩展时,这一点非常重要,因为有些Burp扩展可能会相互冲突或干扰。
- 详细信息、输出和错误:在上图窗口的底部,会显示一些与当前所选定的Burp扩展相关的内容。
- Details(详细信息):Details部分会提供关于所选定的Burp扩展的信息,例如Burp扩展的名称、版本和描述等。
- Output(输出):Burp扩展在执行过程中可能会产生一些输出,Output部分将显示所有与选定的Burp扩展相关的输出或结果。
- Errors(错误):如果选定的Burp扩展在执行过程中遇到任何错误,那么错误信息将显示在Errors部分中,这对于调试和排除Burp扩展相关问题非常有用。
总之,Burp Suite中的Extensions界面允许用户管理和监控已经安装的Burp扩展,并能为特定项目选择激活或停用某些Burp扩展,还能让用户查看与每个Burp扩展相关的重要详细信息、输出和错误提示。通过使用Extensions,Burp Suite能够成为一个强大且可定制的平台,以便用于各种安全测试和Web应用程序评估任务。
答题
阅读本小节内容并回答以下问题。
BApp Store(Burp扩展商店)
在Burp Suite中,Burp App Store(或简称BApp Store)将为我们列出官方的Burp扩展,并能允许我们将官方的Burp扩展与Burp Suite无缝集成;这些官方Burp扩展可以用多种语言编写,最常见的是使用Java或Python来编写Burp扩展,其中Java所编写的Burp扩展可以自动与Burp框架集成,而Python所编写的Burp扩展则需要配合Jython解释器才能在Burp框架中被使用。
为了更好地了解BApp商店,我们可以从安装Java所编写的Burp扩展开始。
我们可以切换到Extensions中的"BApp Store"子选项卡并搜索关键字"Request Timer",然后我们就能找到名为"Request Timer"的Burp扩展,最后我们点击该扩展并选择"安装"即可。
Request Timer扩展是一个由Java语言编写的Burp扩展,它允许我们记录每个请求所对应的响应时间,这对于识别和利用基于时间的漏洞特别有用;例如,如果登录表单处理包含有效用户名的请求所需的响应时间要比处理包含无效用户名的请求所需的响应时间多一秒或几秒,那么我们就可以使用用户名单词列表来暴力攻击登录表单,并根据响应时间的差异来判断哪些用户名是有效的。
tips:请求计时器扩展在各种场景中都很有价值,特别是在评估Web应用程序的安全性以及识别潜在的基于时间的漏洞时。
成功安装上述扩展后,我们可以注意到Burp Suite界面顶部的主菜单中出现了一个新的选项卡名为"Request Timer";不同的Burp扩展可能有不同的行为,有些扩展可能会向右键单击上下文菜单中添加新项目,而另一些扩展可能会在Burp Suite的主菜单栏中创建全新的选项卡。
Jython
如果我们想在Burp Suite中使用由Python所编写的Burp扩展,那么我们就需要下载并包含Jython Interpreter(解释器) JAR文件。
tips:Jython解释器是Python的Java实现,它使我们能够在Burp Suite中运行由Python语言所编写的Burp扩展。
我们可以按照以下步骤来将Jython集成到本地计算机上的Burp Suite中:
-
下载Jython JAR:访问Jython官网并下载独立的JAR存档,为此我们需要在Jython下载页面中先找到Jython Standalone选项,然后将相关的JAR文件保存到计算机磁盘中的某个位置即可。
-
准备在Burp Suite中配置Jython:打开Burp Suite并切换到Extensions功能模块,然后转到Extensions settings子选项卡。
-
查看Python环境:现在我们已经处于Extensions settings子选项卡界面,我们需要向下滚动到“Python environment”部分。
-
设置Jython JAR位置:在"Location of Jython standalone JAR file"字段下方的选项栏中,设置我们刚才已经下载的Jython JAR文件的路径。
完成上述这些步骤之后,Jython就会被集成到Burp框架中,从而允许我们在Burp Suite中使用由Python所编写的Burp扩展;这种集成显著地增加了可用的Burp扩展的数量,并能增强我们执行各种安全测试和Web应用程序评估任务的能力。
tips:完成Jython集成之后,我们就可以从BApp商店安装由Python所编写的Burp扩展模块了。
注意:将Jython添加到Burp Suite的过程对于所有操作系统都是相同的,因为Java是一种跨平台技术。
在处理由Ruby语言编写的Burp扩展时我们还需要在Burp Suite中集成JRuby,但是在此我们不必展开讨论如何集成JRuby,因为:
- 由Python语言所编写的Burp扩展模块更为常见;
- 集成JRuby与集成Jython的过程完全相同,无需赘述。
我们可以通过访问以下链接来下载JRuby JAR归档文件的最新副本: https://www.jruby.org/download
Burp Suite API
在Burp Suite的Extensions模块中,我们可以访问各种API端点,这些API端点允许我们创建自定义模块并能将其与Burp Suite集成;Extensions模块中的APIs公开了各种功能,从而使得我们可以扩展Burp Suite框架以满足一些特定需求。
为了查看可用的API端点,我们可以导航至Extensions模块中的APIs子选项卡,在该子选项卡界面的左侧面板中所列出的每个项目都代表一个可以从Burp扩展内部访问的不同API端点。
在编写自定义Burp扩展时,Extensions APIs能够为开发人员提供强大的功能和灵活性。我们可以使用这些APIs与Burp Suite的现有功能进行无缝交互,并能定制我们的Burp扩展以执行特定任务。
Burp Suite支持使用多种语言来编写Burp扩展,例如:
- Java(本机):我们可以直接使用Java语言为Burp Suite编写Burp扩展,在实际编写扩展时我们可以利用上述所提及的可用的、强大的APIs;
- Python(通过Jython解释器):我们可以基于Python语言来编写扩展,但是在Burp Suite中我们将使用Jython(Python的Java实现)来创建Burp扩展。
- Ruby(通过JRuby解释器):我们可以基于Ruby语言来编写扩展,但是在Burp Suite中我们将利用JRuby(Ruby的Java实现)来构建Burp扩展。
tips:我们可以使用Burp Suite所支持的编程语言与Extensions模块中的API端点交互,进而编写功能强大的Burp扩展;
需要注意的是,为Burp Suite编写扩展可能是一项复杂的任务,如果对编写自定义的Burp扩展感兴趣,可以查看PortSwigger官方所提供的参考示例:
https://portswigger.net/burp/extender/writing-your-first-burp-suite-extension
小结&Pro版下载链接
本文主要介绍了Burp Suite的Extensions模块,我们不仅可以从BApp商店中安装许多强大的Burp扩展,还可以使用Java、Python或Ruby来编写Burp扩展(在实际编写Burp扩展时,将会涉及到API端点的调用) 。
到目前为止,我们已经完成了Burp Suite工具的整个学习模块,我们主要介绍的是Burp Suite社区版的使用,其他的版本还有Burp Suite专业版以及Burp Suite企业版。
关于Burp Suite专业版的第三方获取链接如下(验证:52pj):
- https://www.123pan.com/s/F2W5Vv-Rk7Vv.html
- https://pan.baidu.com/s/1J_CUxLKqC0h3Ypg4sQV0_g#list/path=%2F