> 文章列表 > burpsuite 插件编写基础

burpsuite 插件编写基础

burpsuite 插件编写基础

文章目录

  • 一、什么是扩展 / 插件
  • 二、burp 的扩展
  • 三、开发步骤

一、什么是扩展 / 插件?

关于这个话题,知乎有一个回答题不错,主要也是引用了wikipedia
burpsuite 插件编写基础
插件/扩展,是向现有的计算机程序添加特定功能的软件组件。

  1. 主程序如果希望自身的功能可以被扩展,其需要:
    1. 提供一组服务 (Service Interface)。其提供(约束)了插件对主体能力可控制的边界。服务定义的越精细,插件控制的粒度越小,能力越大,但耦合度和复杂度也越高。
    2. 定义一种扩展契约 (Plug-In Interface),其描述了插件应该如何设计以便于主程序发现。并通过插件管理模块 (Plug-In Manager) 来发现、维护插件。
  2. 插件通过实现主程序规定的扩展契约(通常是一个接口),标明自己的身份,并接收来自主程序的事件响应。通过调动主程序提供的服务,实现和主程序的交互。这一过程,通常都是被主程序以 SDK (Software Development Kit) 的形式封装。

基本上我们日常所有能接触到的应用都或多或少的提供了插件机制,比如操作系统。其上面运行的应用程序即可以理解为它的插件实现。

二、burp 的扩展

    有了上面的思想作为指导,也就回答了“我要怎么做,为什么可以这样做”的问题。burp本身作为一个软件/计算机程序,实现了一些功能,可以对外提供服务,并提供了一些我们使用这些功能的API。体现在Java程序中,这组服务就是SDK/库(lib)/模块(module)/包(package),就是我们引入的jar 包;这些jar包中定义好了一些接口,在java语言中,提供了直接的面向抽象编程,也就是interface关键字,我们按OOP的思想实现这些interface即可与burp交互,调用其功能。
    burp以前的API–> jar包叫做 Extender API,2022.9版推出了新的APIMontoya API,旧版API将逐步弃用。
burpsuite 插件编写基础
burp支持我们使用python和ruby开发,这里我们使用burp的原生开发语言java。其他语言的支持,中间多加了一层"翻译程序"

三、开发步骤

  • 开发工具 ----> idea2023.2
  • 使用语言 ----> Java(JDK7)
  1. 新建maven项目(maven安装使用自行百度)
    burpsuite 插件编写基础
  2. 添加项目依赖
    不同的burp版本要使用相应的jar包,版本不对有可能出错。直接在maven仓库搜burp extendermontoya,这里我们使用新版的APIMontoya
    burpsuite 插件编写基础
    burpsuite 插件编写基础
    pom.xml配置好并粘贴
    burpsuite 插件编写基础
  3. 官方的例子
    编写一个类实现BurpExtension接口,重写initialize方法,里面就可写我们的功能代码了,然后导出为jar包
    burpsuite 插件编写基础
  4. 导入到burp
    burpsuite 插件编写基础