Burp Suite 插件开发(一)

admin 2024年2月9日00:02:29评论14 views字数 2793阅读9分18秒阅读模式

Burp Suite 介绍

Burp Suite是一款用于攻击和测试Web应用程序的集成平台,它包含了多种工具,如代理、重发器、扫描器、爬虫、Intruder、Repeater等,可以协同工作,共享信息,支持各种攻击和检测方法。

Burp Suite的插件是一种扩展Burp Suite功能的方式,可以通过Burp Extender模块来安装和管理。插件可以由社区用户创建和维护,也可以由自己编写。插件可以修改HTTP请求和响应,发送额外的HTTP请求,自定义Burp Suite的界面和功能,添加额外的扫描检查,访问Burp Suite的信息等。

在本文中,我们将介绍 Burp Suite 插件,并使用 IDEA 工具编写简单的自定义插件。

配置环境

首先我们需要安装 IDE 工具,可以下载 IntelliJ IDEA、Atom、Netbeans、Eclipse 等。

Java 环境

Java 环境我们将在后续文章中以使用 IDEA 工具编写为例介绍。

Python 环境

Burp Suite 依赖 Jython 来支持 Python,需要下载 Jython 并配置 Burp Suite 位置。

在 Burp Suite 页面加载 Python 插件需要选择扩展类型为 Python 并指定 Python 插件文件。

API

Extender API

Burp Suite 的 Extender API 是一套用于创建 Burp Suite 扩展的 Java 接口,它可以让攻击者使用自己或第三方的代码来扩展 Burp Suite 的功能,例如修改 HTTP 请求和响应、发送额外的 HTTP 请求、自定义Burp Suite 的界面和功能、添加额外的扫描检查,访问 Burp Suite 的信息等。

所有接口可以访问 Burp Suite 的官方文档查看:https://portswigger.net/burp/extender/api/index-all.html。

Montoya API

Montoya AP I和 Extender API 都是用于创建 Burp Suite 扩展的 Java 接口,但是 Montoya API 是 Extender API 的升级版,它提供了更多的功能和优化,例如:

  • Montoya API 将Extender API 中的一些接口进行了分类和重构,使得扩展的开发更加清晰和方便。
  • Montoya API 增加了一些新的接口,如IBurpExtension、IExtensionStateListener、IExtensionHelpers等,可以让扩展更好地与 Burp Suite 的核心功能和状态进行交互。
  • Montoya API 支持使用 Maven 或 Gradle 来创建和构建扩展项目,可以方便地管理依赖和版本。该 API 可以访问 Burp Suite 的官方文档查看:

https://portswigger.github.io/burp-extensions-montoya-api/javadoc/burp/api/montoya/MontoyaApi.html

BApp Store

BApp Store 包含由 Burp Suite 用户编写的 Burp 扩展,以扩展 Burp 的功能。

攻击者可以通过 Burp Extender 工具中的 BApp Store 功能直接在 Burp Suite 中安装。也可以访问 Burp Suite 提供的在线网站(https://portswigger.net/bappstore),以便离线安装到 Burp Suite 中。

Burp Suite 插件开发(一)

插件编写

以使用 Java 语言编写为例,启动 IDEA 环境并创建一个名为”Burps”的新项目:

Burp Suite 插件开发(一)

注意:需要将语言更改为 Kotlin 来支持

接下来需要添加 Burp Suite 的接口,按住 CTRL+ALT+SHIFT+S 打开”项目结构”菜单并点击”+”号选择”From Maven…”:

Burp Suite 插件开发(一)

搜索 “net.portswigger.burp.extender:burp-extender-api:2.1” 并安装:

Burp Suite 插件开发(一)

点击”OK”按钮并将该库应用到创建的插件中:

Burp Suite 插件开发(一)

接下来就需要编写代码了,首先需要创建名为”Burp”的新包。右键 src 目录,点击”New”按钮并选择”Package”以创建:

Burp Suite 插件开发(一)

然后我们需要创建一个 Kotlin 的 Class 类,右键”Burp”并点击”New”按钮即可创建:

Burp Suite 插件开发(一)

在该文件中编写一个简单的 Hellow World:

package Burp
import burp.IBurpExtender
import burp.IBurpExtenderCallbacks
import java.io.PrintWriter

@Suppress("unused") // Remove warning, the class will be used by burp
class BurpExtender : IBurpExtender {
override fun registerExtenderCallbacks(callbacks: IBurpExtenderCallbacks) {
// Let's wrap stdout and stderr in PrintWriter with auto flush
val stdout = PrintWriter(callbacks.stdout, true)
val stderr = PrintWriter(callbacks.stderr, true)

// Set our extension name, this will be display in burp extensions tab
callbacks.setExtensionName("Wu Hu")
stdout.println("Hello world!")
stderr.println("OMG! Error!!")
}
}
Burp Suite 插件开发(一)

接下来我们需要构建 Jar 文件,按住 CTRL+ALT+SHIFT+S 打开”项目结构”菜单,选择”Artifacts”并点击”+”号以新建 Jar 文件:

Burp Suite 插件开发(一)

然后选择目录为插件项目名称:

Burp Suite 插件开发(一)

然后可以勾选”Include in project build”,来为每个生成自动创建 Jar 文件:

Burp Suite 插件开发(一)

最后,键入 CTRL+F9 即可构建项目:

Burp Suite 插件开发(一)

在 Burp Suite 的扩展插件选项卡界面添加自定义的 Burps 插件:

Burp Suite 插件开发(一)

我们可以在”Output”和”Errors”选项卡中查看自定义的扩展插件消息:

Burp Suite 插件开发(一)
Burp Suite 插件开发(一)

简单代码示例

如需要更多的代码示例,可以访问以下两个 Burp Suite 官方仓库查看:

https://github.com/PortSwigger/burp-extensions-montoya-api-examples

https://github.com/PortSwigger/example-hello-world

GitHub 仓库

Awesome Burp Extensions

https://github.com/snoopysecurity/awesome-burp-extensions

- END -


原文始发于微信公众号(Ghost Wolf Lab):Burp Suite 插件开发(一)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月9日00:02:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Burp Suite 插件开发(一)https://cn-sec.com/archives/2482886.html

发表评论

匿名网友 填写信息