暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Burpsuite插件编写指南-Java篇(1)

白帽子飙车路 2021-10-18
1859

前言

同事做技术分享的时候,说花时间改了下别人发布的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例子真简单,看来写插件一点都不难


文章转载自白帽子飙车路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论