前言
同事做技术分享的时候,说花时间改了下别人发布的burpsuite插件,挺有意思。既然他能改别人的插件,那咱们必须马上整一个。
但是此时的我还不会。
官方文档
https://portswigger.net/burp/extender/writing-your-first-burp-suite-extension
“
This guide will help you to write your first Burp extension in any of the supported languages (Java, Python & Ruby). 官方只支持三种语言:Java, Python & Ruby
”
快速上手
Burp客户端提供了所有现成的api接口
我们先把所有接口保存到本地,当然写插件不是所有接口都会用到
对应的介绍:https://portswigger.net/burp/extender/api/index.html
按官网文档走一遍
打开idea
新建项目
jdk选择版本11 直接下一步点击完成。
编写项目
将刚刚保存的接口全部复制过来,同时新建一个类:BurpExtender
package burp;
public class BurpExtender implements IBurpExtender
{
public void registerExtenderCallbacks (IBurpExtenderCallbacks callbacks)
{
// your extension code here
}
}
打包项目
文件-项目结构-工件
直接点确定
构建-构建工件 然后目录会多一个名字为out的文件夹,jar也成功生成了。
尝试导入Burpsuite
成功导入没有任何报错。但是我们并不知道我们这个插件开发算不算完成了,因为没有任何提示。那咱们直接拿官网的example,打包个hello world
hello world
修改BurpExtender
package burp;
import java.io.PrintWriter;
public class BurpExtender implements IBurpExtender
{
public void registerExtenderCallbacks (IBurpExtenderCallbacks callbacks)
{
// set our extension name
callbacks.setExtensionName("Hello world extension");
// obtain our output and error streams
PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true);
PrintWriter stderr = new PrintWriter(callbacks.getStderr(), true);
// write a message to our output stream
stdout.println("Hello output");
// write a message to our error stream
stderr.println("Hello errors");
// write a message to the Burp alerts tab
callbacks.issueAlert("Hello alerts");
// throw an exception that will appear in our error stream
throw new RuntimeException("Hello exceptions");
}
}
官网这个helloworld例子真简单,看来写插件一点都不难
原文始发于微信公众号(白帽子飙车路):Burpsuite插件编写指南-Java篇(1)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论