最近一直在挖洞,经常要用到BurpSuite,而Burp 上的一下插件不太好使,就想要自己开发一些插件,在网上看了一些资料,这里来写一个简单的插件吧!
开始前的准备 开发所需要的SDK 包都可以在 Burp — Extender — APIs 处导出
由于所有接口类都有一个 package burp 所以需要建一个burp包,把所有接口类导入进去,然后新建BurpExtender.java ,代码都写到里面
本篇中用到的Burp API IBurpExtender 这是一个必须 要实现的接口
需要实现的方法
1 void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks)
Demo
1 2 3 4 5 6 7 package burp;public class BurpExtender implements IBurpExtender { @Override public void registerExtenderCallbacks (final IBurpExtenderCallbacks callbacks) { } }
ITab 此接口用于自定义的标签页
1 2 3 4 5 6 7 8 9 10 11 12 13 14 //实现 ITab 接口的 getTabCaption 方法 // 此方法用于获取自定义标签的标题文本 @Override public String getTabCaption() { // TODO Auto-generated method stub return "Burp 标签测试"; } // 实现 ITab 接口的 getUiComponent 方法 // Burp 调用此方法获取自定义标签页显示的组件 @Override public Component getUiComponent() { // TODO Auto-generated method stub return jPanelMain; }
IBurpExtenderCallbacks Burp Suite 利用此接口向扩展中传递了许多回调方法,这些回调方法可被用于在 Burp 中执行多个操作。当扩展被加载后,Burp 会调用registerExtenderCallbacks() 方法,并传递一个 IBurpExtenderCallbacks 的实例。
方法有很多,具体的就看文档咯
demo
1 2 3 4 5 6 7 8 package burp;public class BurpExtender implements IBurpExtender { @Override public void registerExtenderCallbacks (IBurpExtenderCallbacks callbacks) { callbacks.setExtensionName("BurpExtender" ); } }
IExtensionHelpers 此接口提供了很多常用的辅助方法,这些扩展可用于协助处理Burp扩展所产生的各种常见任务,扩展可以通过调用IBurpExtenderCallbacks.getHelpers 获得此接口的实例。
Hello Burp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 package burp;import java.awt.Component;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.io.PrintWriter;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.SwingUtilities; public class BurpExtender implements IBurpExtender ,ITab { public PrintWriter stdout; public IExtensionHelpers hps; public IBurpExtenderCallbacks cbs; public JPanel jPanelMain; @Override public String getTabCaption () { return "Burp 标签测试" ; } @Override public Component getUiComponent () { return jPanelMain; } @Override public void registerExtenderCallbacks (IBurpExtenderCallbacks callbacks) { callbacks.setExtensionName("BurpExtender" ); this .hps = callbacks.getHelpers(); this .cbs = callbacks; this .stdout = new PrintWriter(callbacks.getStdout(), true ); this .stdout.println("hello burp!" ); SwingUtilities.invokeLater(new Runnable() { @Override public void run () { jPanelMain = new JPanel(); JButton jButton = new JButton("Hello Burp" ); jButton.addMouseListener(new MouseAdapter() { @Override public void mouseClicked (MouseEvent e) { stdout.println("Hello Burp" ); } }); jPanelMain.add(jButton); cbs.customizeUiComponent(jPanelMain); cbs.addSuiteTab(BurpExtender.this ); } }); } }