【BurpSuite】插件开发之fastjson4burp改造

【BurpSuite】插件开发之fastjson4burp改造

前言

sqlmap4burp开发者把代码重构了,fastjson scan文件也比较清楚,所有的项目文件都放在BurpExtender.java里面,比较适合我们这种初学者。

内容会持续更新,主要作用是备忘。

对比学习

1. 如果要输出一些内容如何做?

public class BurpExtender extends AbstractTableModel implements IBurpExtender{
    public PrintWriter stdout;
    BurpExtender.this.stdout.println("[*] 看看我的payloads [*] 

");
    }
public class BurpExtender extends AbstractTableModel implements IBurpExtender{
    public PrintWriter stdout;
    BurpExtender.this.stdout.println("[*] 看看我的payloads [*] 

");
    }

比如我要输出看看我的payloads

output里面就能看到

怎么改拓展名称

这个名称怎么改呢

public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) {
	callbacks.setExtensionName("fastjson4burp");
}

怎么改jar的名称

如何修改右键的ui

JMenuItem menuItem = new JMenuItem("plug-in3-fastjson4burp");

20210214更

找到bit4woo师傅写的burp插件学习指南,也是java栈的技术指导,比较好入门

涵盖一下上面的部分内容,包括

    插件名称 输出流 burp报警面板 异常抛出
package burp;

import java.io.PrintWriter;

public class BurpExtender implements IBurpExtender
{
    @Override
    public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks)
    {
        // 设置插件的名称
        callbacks.setExtensionName("Hello world extension");
        
        // 获取burp提供的标准输出流和错误输出流
        PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true);
        PrintWriter stderr = new PrintWriter(callbacks.getStderr(), true);
        
        // 打印到标准输出流
        stdout.println("Hello output");
        
        // 答应到错误输出流
        stderr.println("Hello errors");
        
        // 写一个报警信息到burp的报警面板
        callbacks.issueAlert("Hello alerts");
        
        // 抛出一个异常,将会在错误输出流中显示
        throw new RuntimeException("Hello exceptions");
    }
}

callback

如果想要调用burp官方的原生接口,就用callback 通过idea自动tab就能看到。

经验分享 程序员 微信小程序 职场和发展