Burpsuite Plugins Development
ssooking Lv5

辅助文档

开发一个插件

新建Gradle项目,勾选Java,选择JDK11

在build中添加Burpsuite插件的依赖(类似于pom.xml)

目前公开的依赖版本可见:Burp Extender API

1
implementation 'net.portswigger.burp.extender:burp-extender-api:2.3'

点击右上角刷新按钮

然后点击一下gradle的更新,将依赖下载下来,这样就将我们之前手动复制api文件的操作省掉了。

如果创建的项目此时没有src\main目录,解决方法:

1.首先先打开build.gradle添加如下代码,创建一个Task任务

1
2
3
4
5
6
7
8
task create_dirs {
sourceSets*.java.srcDirs*.each {
it.mkdirs()
}
sourceSets*.resources.srcDirs*.each {
it.mkdirs()
}
}

添加完这个任务后点击右下角的Import Changes

点击右侧Gradle打开other 就会发现刚才我们写的任务名会在这里,点击执行create_dirs任务即可创建src目录。

在src/main/java下新建package,名称为burp。在burp下新建BurpExtender类。

这个包名和类名是固定的,burpsuite加载插件时就是通过burp.BurpExtender来查找的,如果不这样起名,会报ClassNotFoundException 。

BurpExtender类需要实现IBurpExtender接口,burp在加载插件时,会调用该接口,并传递IBurpExtenderCallbacks接口供我们使用。

然后我们添加下面的代码为插件设置名称,并打印success字符串:

1
2
3
4
5
6
7
8
9
package burp;

public class BurpExtender implements IBurpExtender{
@Override
public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) {
callbacks.setExtensionName("sendmyexp");
callbacks.printOutput("load success");
}
}

接着可以编译该项目成jar包,然后让burp加载看看效果。

点击右侧的gradle菜单,展开菜单,双击shadowjar,gradle会自动编译项目成jar包,jar包位于build目录中的libs目录中。

在右侧build下选择Jar,尝试编译成jar包

我们在build目录下的lib文件夹中能清晰的看见,已经打包成功burpguitest2-1.0-SNAPSHOT.jar

我们需要给自己的插件构建ui界面,为了让IDEA打包GUI界面的类,需要在build.gradle添加com.intellij:forms_rt_依赖。代码如下

1
implementation group: 'com.intellij', name: 'forms_rt', version: '7.0.3'

接着在设置中设置根据 Form 界面自动生成 Java 源码:

IDEA => Preference => GUI Designer 选择Java source code

然后在Gradle的编译选项中设置编译器是IDEA自带的编译器,这样才能自动更新form文件中的控件到代码中:

新建一个名为ui的包

参考

从头开发一个BurpSuite数据收集插件

https://mp.weixin.qq.com/s/ikmcnAdCLD8eIZgLQnpBzQ

https://mp.weixin.qq.com/s/nltEP0UJt0IGvBOf6LnsNg

https://mp.weixin.qq.com/s/V1t5wNqwqMF_RS6WLB8KLQ

https://blog.yeswehack.com/yeswerhackers/tutorial/how-to-learn-write-burp-suite-extension-kotlin-setting-up/

  • Post title:Burpsuite Plugins Development
  • Post author:ssooking
  • Create time:2021-12-10 11:18:00
  • Post link:https://ssooking.github.io/2021/12/burpsuite-plugins-development/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.