很久以前就有自己写插件的想法了,但是后来忘掉了。刚好最近有人发,果断研究了下。
burp的api可以去官方直接下,也可以如上图那些充burp主程序中导出。
把导出的api 导入eclipse就可以开始写了。
二级域名这个插件需要实现下面两个接口。
BurpExtender 每个burp的插件都必须要有这个类,实现IBurpExtender接口
IBurpExtender 这个接口非常重要。里面包含很多信息。比如请求,响应。之类的。注册右键菜单也需要。
IContextMenuFactory 这是右键菜单的接口。
下面是BurpExtender类内容:
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.JMenuItem; public class BurpExtender implements IBurpExtender,IContextMenuFactory { IBurpExtenderCallbacks callbacks; subdomain sub ; @Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) { // TODO Auto-generated method stub sub = new subdomain(); //设置应用名称 callbacks.setExtensionName("subdomain"); //subdomain布局 callbacks.customizeUiComponent(sub); //添加tab callbacks.addSuiteTab(sub); this.callbacks = callbacks; //注册右键菜单 callbacks.registerContextMenuFactory(this); } @Override public List<JMenuItem> createMenuItems(final IContextMenuInvocation invocation) { //创建右键菜单 JMenuItem jm = new JMenuItem("send subdomain"); //菜单的事件 jm.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub new ui(invocation,callbacks,sub); } }); List<JMenuItem> list = new ArrayList<JMenuItem>(); list.add(jm); return list; } }
上面的注释很清楚了,只要是你想实现什么功能,你就实现什么接口。