idea gui插件_如何开发一个Burp插件

Burp 是 Web 安全测试中不可或缺的神器。每一个师傅的电脑里面应该都有一个 Burp。同时 Burp 和很多其他神器一样,它也支持插件。但是目前总体来说网上 Burp 插件开发的资料不是特别特别的丰富。今天我也来讲讲自己如何从一个完全不会 Burp 插件开发的小白如何学习 Burp 插件的开发。

如何调试

其实开发一样东西,调试真的特别重要。如果没有调试,那就和瞎子摸象差不多,非常的难顶。尤其是在 Burp 插件的开发过程中,如果你不可以调试,那你就必须把 jar 包打包出来,再安装,然后通过 output 来打印调试,这样的确非常地痛苦。后来在网上找了一些资料,一开始没太明白,后来研究发现原来调试配置这么简单。这么我们以宇宙 JAVA 开发神器 IDEA 为例。

1.配置 DEBUG

首先是在 IDEA 里面配置调试。点击右上角里面的配置,点击 "Edit Configurations" 就可以进入对 DEBUG 的配置页面。新增一个 Remote 配置,命名可以随自己的喜好。

b0ecae11f75ebbcfdeec9502eb41ebba.png

2. 命令行启动 Burp

为了配合调试,需要在命令行中使用刚才新建 DEBUG 配置的参数来启动 Burp。

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar burpsuite_community_v2.1.02.ja

3. 部署 jar 包,打断点

可以现在程序中打一下断点。接着就是编译 jar 包,并且启动 IDE 的 DEBUG。将 jar 包部署到 Burp 中,下面就可以快乐地调试了。

92fa2574c56a93f2635fef6c7181a027.png

Burp 开发

老实说其实 Burp 插件开发其实还是比较简单的,只要你掌握常规的套路,熟悉了基本的 API 之后,基本就可以进行插件的开发。插件开发最困难的部分其实是 GUI 的开发,不过这也属于 JAVA GUI 开发的范畴,这个暂不讨论。Burp 开发注意以下几点:

  • 所有 Burp 插件都必须实现 IBurpExtender 接口
  • 实现的类必须叫做 BurpExtender
  • 必须要重写 registerExtenderCallbacks 方法

后续如果需要调用启用其它接口的方法,那么也需要在 BurpExtender 中实现相应的接口。讲一个例子,比如要对 Proxy 进行相关的操作。

首先,需要在 BurpExtender 中实现 IProxyListener 接口,接下来就需要实现 processProxyMessage 方法。在 processProxyMessage 方法中,就可以对发送的请求以及相应进行处理。

public 

下面再讲一个例子,获取请求中的请求头:

public List<Map<String, String>> getHeaders(IHttpRequestResponse messageInfo) {
 List<Map<String, String>> headers = new ArrayList<>();
 IRequestInfo analyzeRequest = helpers.analyzeRequest(messageInfo);
 List<String> h = analyzeRequest.getHeaders();
 for (String h1: h) {
 Map<String, String> hMap = new HashMap<>();
 if (h1.startsWith("GET") || h1.startsWith("POST")) {
 continue;
 } else {
 String[] header = h1.split(":", -1);
                hMap.put(header[0], header[1]);
 }
            headers.add(hMap);
 }
 return headers;
 }

总结

其实总的来说 Burp 插件开发并不特别困难,只要当一个合格的 API 调用者就可以了。网上目前也有很多开源的 Burp 插件代码,其实你可以找一个感兴趣的 Burp 插件代码看一下,你就可以快速地了解这些 API 的作用。其实 Burp 的 Extender 中的 APIs 就已经列出了所有可用的 API 接口。

b21d60260d9bf0d94d0a32d6ab77e04c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值