您现在的位置是:首页 > Javascript
当前栏目
BurpSuite插件——新建UI界面且监听访问HTTP信息
2023-04-18 15:27:59 时间
一、写在前面
很久没更新了,一个是事情比较多、杂,而且这段时间有很多新知识和认知的冲击,不得不停下来沉淀一下。今天起正式开始一个新的模块——burp插件开发。
二、插件要求
开发burp插件,一个是满足硬性功能要求,一个是界面尽量简洁工整。提取共性,第一次的例子就偏简单一些——完成burp界面的创建,并在界面中显示监听请求和回显的信息。
三、开发过程
1.注意事项写在前面:
在burp中写入拓展,一定要会用burp的api,具体怎么看、怎么用、怎么引入这里就不详细说明了,我这里放入两个师傅的博客,都是可行的方法。个人更喜欢maven引入的方式,会界面会比较简洁~
maven方式——https://www.cnblogs.com/piaomiaohongchen/p/16869829.html
导入burp的api——https://www.cnblogs.com/wjrblogs/p/16618145.html
2.代码
package burp; import javax.swing.*; import java.awt.*; import java.io.PrintWriter; public class BurpExtender implements IBurpExtender, IHttpListener, ITab{ private IBurpExtenderCallbacks callbacks; private PrintWriter stdout; private JPanel jPanelMain; private JTextArea jta; @Override public void registerExtenderCallbacks(IBurpExtenderCallbacks iBurpExtenderCallbacks) { //插件名称 this.callbacks = iBurpExtenderCallbacks; callbacks.setExtensionName("First BurpExtender"); //插件激活时显示的内容 this.stdout = new PrintWriter(callbacks.getStdout(),true); this.stdout.println("Hello~"); //注册监听器 callbacks.registerHttpListener(this); //添加burp标签 callbacks.addSuiteTab(this); } @Override public String getTabCaption() { return "Tools"; } @Override public Component getUiComponent() { if (jPanelMain == null){ jPanelMain = new JPanel(); jPanelMain.setLayout(new BorderLayout()); jta = new JTextArea(); //设置滚动条 JScrollPane jScrollPane = new JScrollPane(jta); jPanelMain.add(jScrollPane,BorderLayout.CENTER); } return jPanelMain; } @Override public void processHttpMessage(int i, boolean b, IHttpRequestResponse iHttpRequestResponse) { stdout.println( (b ? "HTTP request to ":"HTTP response from ")+iHttpRequestResponse.getHttpService()+"["+callbacks.getToolName(i)+"]" ); this.jta.append((b ? "HTTP request to ":"HTTP response from ")+iHttpRequestResponse.getHttpService()+"["+callbacks.getToolName(i)+"]"); this.jta.append(" "); } }
3.实现效果
相关文章
- 前端面试 【JavaScript】— typeof 是否能正确判断类型?
- 前端面试 【JavaScript】— instanceof 能否判断基本数据类型?
- 前端面试 【JavaScript】— 能不能手动实现一下 instanceof 的功能?
- 前端面试 【JavaScript】— Object.is和=== 有什么区别?
- 前端面试 【JavaScript】— JS中类型转换有哪几种?
- 前端面试 【JavaScript】— == 和 ===有什么区别?
- 前端面试 【JavaScript】— 对象转原始类型是根据什么流程运行的?
- JavaScript 的 parseInt() 函数
- javascript实现两个数字进行组合
- JS监听键盘按键
- 大前端开发中的路由管理之五:Flutter篇
- Javascript的DOM操作
- 在Vue项目中使用WebSocket技术
- 新手向:前端程序员必学基本技能——调试JS代码
- React 毁了 Web 开发!
- 「JS 逆向百例」cnki 学术翻译 AES 加密分析
- 商标注册域名后缀用什么?商标和域名有哪些区别?
- 网站建设流程是怎样的?需要看重哪些细节?
- 网站域名商标注册流程是什么?网站域名商标有什么用?
- 如何建设一个实用性强的网站 网站上线后如何运营