0x01 java项目
学习了一下burp插件的入门, 参考:
https://support.portswigger.net/customer/portal/questions/17285859-how-to-deploy-an-extension
首先第一个坑是那堆接口, 自己之前没怎么写过java,所以这次,也没写...
找到官方提供的接口下载下来:
https://github.com/PortSwigger/burp-extender-api
然后新建一个java项目,名字随便起一个,然后新建一个叫burp的package把所有接口都拷进去,参考:
https://portswigger.net/burp/extender/writing-your-first-burp-suite-extension
然后我直接在burp包下创建了一个BurpExtender.class
的类,用的就是最简单的那个官方例子的代码:
https://github.com/PortSwigger/example-hello-world/blob/master/java/BurpExtender.java
所以,一行代码没写:>
0x02 导成jar包
这个也一顿折腾,我使用的是intellij,首先打开file下的Project Structure
,点开加号,Artifacts
->JAR
->From modules ...
这里的Main Class
我任性地随便选了一个main,然后下边META-INF/MANIFEST.MF
也生成路径了,(虽然还不是很懂
然后选择build
里的Build Artifacts
->Build
一般就生成一个out
文件夹有一个工程同名jar包,导入burpSuite即可。(注意是Build Artifacts)
对了,接口文件好像可以直接从burp里获得?
代码:
1 | package burp; |
JMenu
拿来一个基本代码:
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
33package burp;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
public class BurpExtender implements IBurpExtender, IContextMenuFactory
{
//
// implement IBurpExtender
//
@Override
public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks)
{
// set our extension name
callbacks.setExtensionName("JMenu Test");
callbacks.registerContextMenuFactory(this);
}
@Override
public List<JMenuItem> createMenuItems(IContextMenuInvocation invocation) {
List<JMenuItem> jMenuItemList = new ArrayList<>(); // create JMenuItemList
JMenu jMenu = new JMenu("My JMenus"); // title
JMenuItem jMenuItem1 = new JMenuItem("My JMenu 1"); // 第一个选项
JMenuItem jMenuItem2 = new JMenuItem("My JMenu 2"); // 第二个选项
jMenu.add(jMenuItem1);
jMenu.add(jMenuItem2);
jMenuItemList.add(jMenu);
return jMenuItemList;
}
}
java swing编程,创造一个JMenu。
JFrame
在其中一个选项中添加单击事件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20@Override
public List<JMenuItem> createMenuItems(IContextMenuInvocation invocation) {
List<JMenuItem> menu = new ArrayList<JMenuItem>();
JMenu main = new JMenu("JMenu Test");
JMenuItem item = new JMenuItem("My JMenu 1");
main.add(item);
menu.add(main);
item.addActionListener(e -> {
JFrame frame = new JFrame("JFrame Text"); //创建JFrame
JTextArea _text = new JTextArea("Hello World"); //创建JTextArea
_text.setEditable(false);
frame.add(_text); //插入文本
frame.setSize(600, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
});
return menu;
}