Brup插件的开发,大体流程就是在自己创建的BurpExtender类上去实现不同功能的接口。

所以,你想要开发出什么功能,就去找一下Burp是否提供了类似功能的接口,有就实现即可。如果没有提供在考虑去开发。

想要快速的开发出一款Burp插件, 先了解一下它的APIs是有必要的。下面我将梳理一下Burp提供出来的APIs。

APIs分类

官网的接口文档是按照A-Z这种传统字典方式排序的,大概40多个,由于接口太多了,这样看对人不太友好,我改成功能大类的方式进行分类。
也不是每个接口,接口里面的每个方法都要看,大概知道每个接口的功能,用到在细查即可。

插件入口、帮助

IBurpExtender
插件的入口,开发插件必须得实现该接口;

IBurpExtenderCallbacks
此接口向扩展传递一组回调方法,扩展可以使用这些方法在 Burp 中执行各种操作。
比如注册器。

IExtensionStateListener
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerExtensionStateListener() 来注册扩展状态侦听器。

Http数据流处理

ICookie
该接口用于保存有关 HTTP cookie 的详细信息。

IExtensionHelpers
该接口包含许多帮助器方法,扩展可以使用这些方法来协助 Burp 扩展出现的各种常见任务。

IHttpHeader
该接口用于保存有关 HTTP/2 标头的详细信息。

IHttpListener
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerHttpListener() 来注册 HTTP 侦听器。

IHttpRequestResponse
该接口用于检索和更新有关 HTTP 消息的详细信息。

IHttpRequestResponsePersisted
此接口用于 IHttpRequestResponse 对象,该对象的请求和响应消息已使用 IBurpExtenderCallbacks.saveBuffersToTempFiles() 保存到临时文件中。

IHttpRequestResponseWithMarkers
此接口用于已应用标记的 IHttpRequestResponse 对象。

IHttpService
此接口用于提供有关 HTTP 服务的详细信息,HTTP 请求可以发送到该服务。

IInterceptedProxyMessage
该接口用于表示已被 Burp Proxy 拦截的 HTTP 消息。

IParameter
该接口用于保存有关 HTTP 请求参数的详细信息。

IProxyListener
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerProxyListener() 来注册代理侦听器。

IRequestInfo
该接口用于检索有关 HTTP 请求的关键详细信息。

IResponseInfo
该接口用于检索有关 HTTP 响应的关键详细信息。

IResponseKeywords
该接口用于表示HTTP响应中出现的关键字的数量。

IResponseVariations
该接口用于根据各种属性来表示多个 HTTP 响应之间的变化。

ISessionHandlingAction
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerSessionHandlingAction() 来注册自定义会话处理操作。

UI界面&组件

IContextMenuFactory
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerContextMenuFactory() 来注册自定义上下文菜单项的工厂。

IContextMenuInvocation
当 Burp 调用扩展提供的 IContextMenuFactory 以及上下文菜单调用的详细信息时,将使用此接口。

IMessageEditorController
IMessageEditor 使用此接口来获取有关当前显示消息的详细信息。

IMessageEditorTab
注册 IMessageEditorTabFactory 的扩展必须返回此接口的实例,Burp 将使用该实例在其 HTTP 消息编辑器中创建自定义选项卡。

ITab
此接口用于使用 IBurpExtenderCallbacks.addSuiteTab() 等方法向 Burp 提供将添加到 Burp UI 的自定义选项卡的详细信息。

ITextEditor
该接口用于为扩展程序提供 Burp 原始文本编辑器的实例,以便扩展程序在其自己的 UI 中使用。

工具&辅助

IBurpCollaboratorClientContext
类似DNSLog功能

IBurpCollaboratorInteraction
类似DNSLog功能

ITempFile
此接口用于保存通过调用 IBurpExtenderCallbacks.saveToTempFile() 创建的临时文件的详细信息。

Intruder模块 —— 对该模块功能扩展

IIntruderAttack
该接口用于保存有关入侵者攻击的详细信息。

IIntruderPayloadGenerator
该接口用于自定义 Intruder 有效负载生成器。

IIntruderPayloadGeneratorFactory
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerIntruderPayloadGeneratorFactory() 来注册自定义 Intruder 有效负载的工厂。

IIntruderPayloadProcessor
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerIntruderPayloadProcessor() 来注册自定义 Intruder 负载处理器。

Scan模块 —— 对该模块功能扩展

IScanIssue
该接口用于检索扫描仪问题的详细信息。

IScannerCheck
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerScannerCheck() 来注册自定义扫描仪检查。

IScannerInsertionPoint
此接口用于定义供主动扫描程序检查使用的插入点。

IScannerInsertionPointProvider
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerScannerInsertionPointProvider() 来注册自定义扫描仪插入点的工厂。

IScannerListener
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerScannerListener() 来注册 Scanner 侦听器。

IScanQueueItem
此接口用于检索 Burp Scanner 主动扫描队列中项目的详细信息。

IScopeChangeListener
扩展可以实现此接口,然后调用 IBurpExtenderCallbacks.registerScopeChangeListener() 来注册范围更改侦听器。

APIs index

https://portswigger.net/burp/extender/api/index.html

posted on 2023-10-18 17:05  Mysticbinary  阅读(60)  评论(0编辑  收藏  举报