Burp Suite是每个web安全学习者都接触过的集成平台,包含集合了多种渗透测试组件,除了强大的功能外,官方还提供API支持使用者开发插件,满足你独特的需求。
0×00 Burp Suite扩展模块
斗哥这里从Burp的Extender(扩展)模块为出发点,讲述Burp的扩展开发,其它模块功能的使用大家可以查看公众号Burp Suite使用的系列的文章。
Burp Extender的Extension页面中,可以手动添加开发好的插件,显示已添加的插件进行管理。
BApp Store的页面中左边为各个插件的应用列表,当选中某个插件后,右侧显示的为该插件的描述信息和安装信息。如果我们需要使用某个插件,则点击右侧下方的【install】按钮,进行安装。描述信息中可能提供源码的地址可以阅读学习或者修改源码来实现想要的功能。
APls界面由左边的接口类和右边的接口定义和描述构成,其中左边的最下端有两个按钮,图中1按钮为保存接口类,图中2按钮为保存Javadocs。
保存接口类,当我们点击保存后,在指定的存储目录下,会生成一系列的java文件如下图:
保存Javadocs,点击保存后,会在存储目录中存放与API相对应的JavaDocs文件。来说明API的使用,用浏览器打开则如下图所示:
0×01 API简述
我们可以把JAVA接口看成一个高级类,与普通类不同的是我们要实现它的所有方法,相当于burp定出的“规则”,我们在开发时一定要遵守“规则”才能实现接口方法功能,“规则”包括有接口的实例化(实现方法)、接口方法入参(参数类型和参数个数)、接口方法的返回值(返回值类型)。我们在JavaDocs可以查看这些“规则”。
接口类的使用说明除了上文说的,我们能导出JavaDocs到本地外,Burp官方也提供了一份在线文档,地址 为:https://portswigger.net/burp/extender/api/index.html
下面根据接口功能的不同对API 进行分类:
1. 插件入口和帮助接口类:IBurpExtender、IBurpExtenderCallbacks、 IExtensionHelpers、IExtensionStateListener
IExtensionHelpers、IExtensionStateListener IBurpExtender接口类是Burp插件的入口,所有Burp的插件均需要实现此接口,并且 类命名为BurpExtender。IBurpExtenderCallbacks接口类是IBurpExtender接口的实 现类与Burp其他各个组件(Scanner、Intruder、Spider……)、各个通信对象 (HttpRequestResponse、HttpService、SessionHandlingAction)之间的连接。 IExtensionHelpers、IExtensionStateListener这两个接口类是插件的帮助和管理操作的接口定义。