burpsuite 插件编写入门

news2024/12/24 21:03:14

文章目录

  • 一、什么是扩展 / 插件?
    • 实现一个简单的 插件/扩展 系统
  • 二、burp 的扩展
  • 三、开发步骤
  • 总结


一、什么是扩展 / 插件?

关于这个话题,知乎有一个回答题不错,主要也是引用了wikipedia
extension
插件/扩展,是向现有的计算机程序添加特定功能的软件组件。

  1. 主程序如果希望自身的功能可以被扩展,其需要:
    1. 提供一组服务 (Service Interface)。其提供(约束)了插件对主体能力可控制的边界。服务定义的越精细,插件控制的粒度越小,能力越大,但耦合度和复杂度也越高。
    2. 定义一种扩展契约 (Plug-In Interface),其描述了插件应该如何设计以便于主程序发现。并通过插件管理模块 (Plug-In Manager) 来发现、维护插件。
  2. 插件通过实现主程序规定的扩展契约(通常是一个接口),标明自己的身份,并接收来自主程序的事件响应。通过调动主程序提供的服务,实现和主程序的交互。这一过程,通常都是被主程序以 SDK (Software Development Kit) 的形式封装。

基本上我们日常所有能接触到的应用都或多或少的提供了插件机制,比如操作系统。其上面运行的应用程序即可以理解为它的插件实现。

实现一个简单的 插件/扩展 系统

待定(利用java的反射机制)

二、burp 的扩展

    有了上面的思想作为指导,也就回答了“我要怎么做,为什么可以这样做”的问题。burp本身作为一个软件/计算机程序,实现了一些功能,可以对外提供服务,并提供了一些我们使用这些功能的API。体现在Java程序中,这组服务就是SDK/库(lib)/模块(module)/包(package),就是我们引入的jar 包;这些jar包中定义好了一些接口,在java语言中,提供了直接的面向抽象编程,也就是interface关键字,我们按OOP的思想实现这些interface即可与burp交互,调用其功能。
    burp以前的API–> jar包叫做 Extender API,2022.9版推出了新的APIMontoya API,旧版API将逐步弃用。
在这里插入图片描述
burp支持我们使用python和ruby开发,这里我们使用burp的原生开发语言java。其他语言的支持,中间多加了一层"翻译程序"

三、开发步骤

  • 开发工具 ----> idea2023.2
  • 使用语言 ----> Java(JDK17)
  1. 新建maven项目(maven安装使用自行百度)
    在这里插入图片描述
  2. 添加项目依赖
    不同的burp版本要使用相应的jar包,版本不对有可能出错。直接在maven仓库搜burp extendermontoya,这里我们使用新版的APIMontoya
    在这里插入图片描述
    在这里插入图片描述
    pom.xml配置好并粘贴
    在这里插入图片描述
  3. 官方的例子
    编写一个类实现BurpExtension接口,重写initialize方法,里面就可写我们的功能代码了,然后导出为jar包
    在这里插入图片描述
  4. 导入到burp
    在这里插入图片描述

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go的Gin框架拦截器实现登录认证结合JWT实现会话记录

JWT jwt全称 Json web token,是一种认证和信息交流的工具。 授权:这是使用JWT最常见的场景。一旦用户登录,每个后续请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。 信息交流:JSON Web令牌是在各方之间…

3.redis-事务

01-Redis事务概述 概述 Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化放到一个队列中按顺序地执行。事务 在执行的过程中,不会被其他客户端发送来的命令请求所打断。 不支持ACID ①atomicity, 原子性, redis事务中的指令执行失败, 不影响后…

记一次 腾讯会议 的意外崩溃分析

一:背景 1. 讲故事 前段时间在用 腾讯会议 直播的时候,居然意外崩溃了,还好不是在训练营上课,不然又得重录了,崩完之后发现 腾讯会议 的 bugreport 组件会自动生成一个 minidump,截图如下: 作…

tcpdump 抓包

一、Tcpdump抓包 抓取端口为2008的数据包 抓包文件内容 抓取到的内容保存在文件中,可以通过wireshark分析 二、tcpdump的一些命令 tcpdump和ethereal可以用来获取和分析网络通讯活动,他们都是使用libpcap库来捕获网络封包的。 ​在混杂模式下他们可以监…

Oracle-主备切换问题(BUG-31747989)

背景: 用户在Oracle Rac 19.6版本通过switchover方式进行主备切换,在备切主完成之后,进行open的过程中,状态长时间无法完成疑似hang住。 问题: ​ Oracle Rac 19.6版本通过switchover方式进行主备切换,切换完成之后进行open&#xf…

100个开源手写人工智能算法(持续更新中)

你是否曾经对开源框架中算法的运行原理感到好奇?又是否曾经想过使用自己写的算法来进行机器学习? 现在,向您推荐一款基于 Python 语言的开源手写机器学习算法项目! https://github.com/yuluxingchen/AI/ 这个项目中预计将包含了…

【10 浅学jsp】

浅学 jsp 一、jsp1. jsp介绍2. JSP执行流程3. JSP的本质还是Servlet4. JSP语法4.1 注释4.2 代码块4.3JSP表达式4.4JSP声明 5. JSP指令page 指令include 包含指令包含 其他页面taglib 引入外部标签库 6. JSP细节6.1 pageContext 页面域对象 7. Servlet四大域对象小结8. MVC模型 …

利用MFC实现一个托盘功能

文章目录 1.将主窗口隐藏起来,并移除任务栏图标显示2. 制作系统托盘3. 右键托盘得到信息4. 选择信息栏触发事件5. 添加开机自启动与关闭开机自启动OnSetPowerBoot与OnCancelPowerBoot 右键点击托盘,弹出如下的图标 1.将主窗口隐藏起来,并移除…

Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130264470 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子网络科技博…

怎么批量把heic格式转化jpg,3招快速解决

怎么批量把heic格式转化jpg?heic是一种新型的图像文件格式,是苹果独家搞出来的一个图片格式,它小巧玲珑,而且图像质量超好,专门给iOS11系统用户用的。这种格式比老JPEG更厉害,不仅图片质量好,而…

如何减少电脑内存占用或优化内存?

内存(Memory)是计算机一个重要的组成部件,也称为内存储器或主存储器。它可以暂时存放CPU中运算的数据,以及与硬盘等外部存储器交换的数据,是CPU和硬盘之间的桥梁。若电脑内存占用过高,这会影响到电脑运行的速度,那该如…

Redis的哈希槽分区

目录 1. 一致性算法分区的缺点2. 哈希槽分区3. Redis为什么是16384个槽 1. 一致性算法分区的缺点 可以参考一致性哈希算法分区这篇文章 2. 哈希槽分区 Redis集群中内置了16384个哈希槽。redis会根据服务器节点数量大致均等的将哈希槽映射到不同的节点 当写入一条数据&#x…

Java版本的工程项目管理系统源代码之工程项目管理系统面临的挑战

​ ​工程项目管理系统是指从事工程项目管理的企业(以下简称工程项目管理企业)受业主委托,按照合同约定,代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 ​系统定义 工程项目管理企业不直接与该工程项目的总承包…

UE4/5多人游戏详解(六、多人游戏插件的菜单,创建会话设置和加入)

目录 简单的菜单 创建新的c类: 这里可能出现的报错: 菜单设置: 代码: UI创建: C类中创建按钮的指针: 子系统创建 创建会话函数: 创建会话后前往大厅: 重载函数 变量添加…

Java 线程

线程:线程是进程的组成部分,一个进程可以拥有多个线程,而一个线程必须拥有一个父进程。线程可以拥有自己的堆栈,自己的程序计数器和自己的局部变量,但不能拥有系统资源。它与父进程的其他线程共享该进程的所有资源。 …

PowerShell install Docker+docker-compoer

docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 …

Linux搭建SVN服务器详细教程

前言 本文讲解 Linux 系统下如何搭建 SVN 服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置。 SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,实现最终集…

【转】使用Midjourney绘制小漫画

原帖地址:【Midjourney教程】设计麻瓜也能15分钟一篇小漫画 Midjourney能帮我画漫画,话不多说,下方成品图 Part 1 你想画什么 画漫画当然要有故事情节,你总得确定,你要画个啥?也就是专业人士说的画面分镜,当然咱们是“野狐禅”,就不扯的太细,太细我也不会… 由于只…

软考中级软件评测师备考攻略

软件评测师属于软考中级,考试虽然没有软考高级难度大,但是会比软考初级要难,所以想要通过软件评测师考试还是需要花时间去用心备考的。 一、软件评测师职业前景: 随着互联网技术的不断发展,软件评测师的市场需求也会…

【CocosCreator入门】CocosCreator组件 | Canvas(画布)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的Canvas能够将游戏物体渲染到屏幕上。 目录 一、组件介绍 二、渲染模式 三、组件属性 四、组件使用 五、脚本示例 一、组件介绍 Canvas组件是Cocos Creator中重要的组件之一。在…