BurpSuite武器库打造之环境搭建和API介绍(上)

2023-11-17

 

 

0x00前言

    在使用Burp Suite(以下简称Burp)来开展渗透工作的途中可能需要验证一些脑洞大开的想法,但Burp自带的功能可能无法满足你的需求,于是你迫切需要一个高度定制化的插件来实现这个功能。经查阅你得知除了Java还可以通过配置扩展环境来运行由Python或者Ruby语言编写的Burp插件。不过关于语言的选择上,此前在也有详细的文章介绍过如何使用Java作为开发语言编写Burp插件。但各家各有所长并不是所有的同学都恰好掌握Java或者掌握多门编程语言,而现今正是Python盛行的天下所以我们决定再以Python语言做为开发基础在做一次分享。

( 注意多图警告!!!)

 

0x01环境准备

如果你已经安装上了Jython的话推荐你这么做,在Burp Suite中打开Extender -> Option -> Python Enviroment -> Select file 打开Jython的安装目录选择Jython.jar即可。未安装Jython的话按下文操作。

Jython下载地址: https://www.jython.org/download.html  

在下载页面选择Jython Standalone 将jython的jar包下载下来备用,打开Burp Suite在Extender中选中Option,可以看到一个Python Environment的配置项,点击Select file 选中下载的jython-standalone-2.7.1.jar文件。

关于加载自定义插件的方式为 Extender -> Extensions -> Brup Extensions -> add (选中插件) -> Loaded  如果编写的插件有语法错误或者运行中发生错误可以在Errors标签中查看,输出内容可以在Output中查看 。

 

0x02接口介绍


本章节参考互联网公开资料,文章,以及官方接口文档等。给出实现Burp接口的Python代码Demo,由于时间及篇幅有限 不能对每个接口都进行长篇大论并给出相应实用的Demo,大部分Demo仅仅展示了该接口的某些属性以便读者在使用 时能够快速理解上手,避免接口不熟导致浪费大量时间。

 

●IBurpExtender

所有的插件都必须实现这个接口。实现接口的类名必须得是 BurpExtender,且需要实现以下方法:

 

/***

*此方法在Burp加载插件后由Burp调用,并传入一个IBurpExtenderCallbacks接口实例。

*/

void registerExtenderCallbacks(IBurpExtenderCallbacks callbaks)

 

● Demo:

 

from burp import IBurpExtender

  

class BurpExtender(IBurpExtender):  

    # burp在加载插件后该函数将有Burp自动调用,并传入一个IBurpExtenderCallbacks接口实例

    def registerExtenderCallbacks(self, callbacks):  

        print("Hello Burp!")

 

Run Output:

 

● IBurpExtenderCallbacks

 

Burp使用这个接口将一组回调方法传递给插件,插件可以使用这些方法来执行Burp中的各种操作。加载插件时,Burp 调用registerExtenderCallbacks()方法并传递IBurpExtenderCallbacks接口实例。然后插件根据需求调用此接口的方法以 达到扩展Burp功能的需求。由于此接口提供的方法以及字段过多,请同学们移驾到 http://portswigger.net/burp/extende r/api/burp/IBurpExtenderCallbacks.html中查看。

 

from burp import *

  

class BurpExtender(IBurpExtender):  

  

    def registerExtenderCallbacks(self, callbacks):  

        #通过IBurpExtenderCallbacks实例可以设置当前插件的显示名称为Flying Pigs

        callbacks.setExtensionName('Flying Pigs')

 

● Run Screenshot

 IContextMenuFactory

 

用户如果想在Context中添加自定义菜单的话可以通过调用注册方法,IBurpExtenderCallbacks.registerContextMenuFa  ctory()之后在重写createMenuItems来达到添加自定义菜单的需求。

 

/***
*当用户在Burp内的任何地方调用Context菜单时,Burp将调用此方法。
*invocation-实现IContextMenuInvocation接口的实例,该实例可以获得Context调用的详细信息
*通过重写该方法你应该返回一个包含自定义菜单的list,如若不需要菜单应该返回null
*/
java.util.List<javax.swing.JMenuItem> createMenuItems(IContextMenuInvocation invocation)

Demo:

from burp import *
                                                            
from javax.swing import JMenu
from javax.swing import JMenuItem
                                                             
class BurpExtender(IBurpExtender, IContextMenuFactory):     
                                                            
    def registerExtenderCallbacks(self, callbacks):         
        callbacks.setExtensionName('Flying Pigs')
       #注册context
        callbacks.registerContextMenuFactory(self)
                                  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BurpSuite武器库打造之环境搭建和API介绍(上) 的相关文章

  • 基于 UML 的业务建模举例

    基于 UML 的业务建模 2011 05 30 作者 杨敏强 来源 网络 简介 对于管理流程咨询项目 大型信息化建设项目和套装管理软件实施项目 对业务环境的分析和理解对项目的成功至关重要 系统 全面理解 IT 系统所处的业务环境 可以帮助
  • Ubuntu_Crontab

    Ubuntu Crontab BasicUsage 编辑定时任务 crontab e 显示定时任务 crontab l 定时任务不执行的解决方案 首先手动执行定时任务命令 排查是否任务本身是否出问题 没问题的话 去日志中看 crontab日
  • HTTP协议之multipart/form-data请求分析

    无意中发现了一个巨牛的人工智能教程 忍不住分享一下给大家 教程不仅是零基础 通俗易懂 而且非常风趣幽默 像看小说一样 觉得太牛了 所以分享给大家 点这里可以跳转到教程 首先来了解什么是multipart form data请求 根据http
  • 验证码图片实现

    使用验证码进行验证 自动生成验证码 后台实现 package common makeCertPic import java awt Color import java awt Font import java awt Graphics im
  • word 封面 目录不要页码 从第三页正文开始要页码的 设置 方法

    原文网址为http hi baidu com liufeispy blog item c7318d01d69aaed7277fb524 html 封面 目录不要页码 从第三页正文开始要页码的 设置 方法 1 鼠标放在正文页 即你的第三页 首
  • win32平台中的程序转换为wince中的一些错误 . 未能为“VCCLCompilerTool”工具生成命令行

    转载自 http blog csdn net shirui1125 article details 6095774 gt ToolBox error PRJ0004 未能为 VCCLCompilerTool 工具生成命令行 从原有的平台复制
  • C++中cout和cerr的区别?

    之前一直在用 但就是没在意两者到底有啥却别 今天又想到这个问题 总结下吧 以下的内容均是本人从网上查阅资料看来整理的 暂时还没有查阅官方资料 不保证准确 欢迎讨论 其实大家平常常会用的主要有三个 cout cerr clog 首先简单介绍下
  • wsl配置

    文章目录 1 systemd服务开启 2 固定IP 2 1 官网的方案 2 2 通过WSL2的Linux子系统设置静态IP 2 3 其他方案 3 运行 Linux GUI 应用安装 Chrome 浏览器 此文接我放弃了VMware 1 sy
  • IDEA学习(一)——IDEA的安装

    最近IDE从Eclipse转到了IDEA 抽时间熟悉了一下IDEA相关的东西 在此记录一下说不定可以帮到有需要的同学 我们就先从IDEA的安装说起吧 需要说明一点的是IDEA是比较吃内存的 所以在安装IDEA之前最好确认的内存不要太小 最好
  • chevereto 页面设置

    我贴一些图 大家可以根据我的设置来搞 或者你可以自定义喽 如果我设置不对 大家也指正一下 可设置的项目非常多 你可以按我的设置来初始化 如果你有什么不满意 自己微调即可 网站 这里值得一说的 搜索 探索 随机 喜欢 粉丝禁用后 这样访客就看
  • Xray和burpsuite联动被动扫描

    想挖点src又没啥思路 试着挂个自动漏扫工具xray 又看到能与burp联动实现自动扫就想尝试一下 搞好进自己网站测试了一下 的确是爬虫式漏扫 访问量属实大 不过自己设置设置还是一个很不错的工具 安装配置 是在ddosi org这里找的破解
  • 怎么转发CSDN中的文章

    2018年09月24日 19 28 33 jackfjw 阅读数 900更多 分类专栏 Html 版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csd
  • RabbitMQ的安装和启动——windows版

    本章介绍如何在win10下安装 RabbitMQ 并启动 安装 Erlang 安装 RabbitMQ 启动 RabbitMQ 百度网盘下载 Erlang 和 RabbitMQ Erlang 网盘链接 RabbitMQ 网盘链接 结语 下载R
  • 组合测试方法PK正交分析方法

    测试过程中 我们经常遇到需要覆盖多个变化参数的测试场景 如我们测试BS配置控制客户端组织资源远程配置一个设备时 进行一个设备通道视频参数设置的各种组合测试 如下图 多数情况下 类似于这种多组合测试时 老员工则是依靠经验去进行有针对性的测试
  • 使用Notepad++工具查看文件的十六进制

    最近在用notepad 打开 dat文件 想看看里面的一些数据但是打开之后发现是乱码 下面给出解决方法 1 首先打开 dat文件 发现是一些乱码 2 点击 插件 gt 搜索hex gt 找到HEX Editor勾选 gt 安装 3 重新打开
  • iOS系统网络抓包方法

    原文地址 http www cnblogs com ydhliphonedev archive 2011 10 27 2226935 html 在进行iOS开发过程中 经常会遇到各种各样的网络访问问题 以前苦于没有抓包工具 很多网络问题解决
  • Linux Container(lxc)分析和配置使用

    前提 本文翻译 有道翻译 自linux container lxc 根据重点摘录学习 介绍 最好将容器化定义为 通过操作系统中的特性启用的进程隔离机制 容器是与系统其他部分隔离的一个或多个进程的集合 Containers VMs lxc通过
  • vscode开发python环境配置

    前言 vscode作为一款好用的轻量级代码编辑器 不仅支持代码调试 而且还有丰富的插件库 可以说是免费好用 对于初学者来说用来写写python是再合适不过了 下面就推荐几款个人觉得还不错的插件 希望可以帮助大家更好地写代码 安装CPytho
  • 【神器】wakatime代码时间追踪工具

    文章目录 wakatime简介 支持的IDE 安装步骤 API文档 插件费用 写在最后 wakatime简介 wakatime就是一个IDE插件 一个代码时间追踪工具 可自动获取码编码时长和度量指标 以产
  • 基于vue-cli快速发布vue npm 包

    一 编写组件 1 初始化项目并运行 vue create vue digital count npm run serve 2 组件封装 新建package文件夹 因为我们可能会封装多个组件 所以在src下面新建一个 package 文件夹用

随机推荐

  • UE4/UE5 动画控制

    工程下载 https mbd pub o bread ZJ2cm5pu 蓝图控制sequence播放 倒播动画 设置开启鼠标指针 开启鼠标事件 在场景中进行过场动画制作 设置控制事件
  • 滚动页面触发相应位置动画 ---react

    需要实现的效果 滚动到内容区域触发 第一段内容移动效果 第二段内容淡入 第三段内容缩放 实现思路 滚动过的距离 当前窗口的高度 gt 元素到顶部窗口的距离 gt 则触发动画 整体代码 import React useRef useEffec
  • Rust 取代 C++ ?

    https www zhihu com question 27608498 作者 天象 链接 https www zhihu com question 27608498 answer 50130876 来源 知乎 著作权归作者所有 商业转载
  • CSS 文字特效运用目录

    主要是记录文字相关的特效实践案例和实现思路 章节名称 完成度 难度 文章地址 完整代码下载地址 创意填充文本悬停效果 完成 一般 文章链接 代码下载 发光文字跟随鼠标 完成 一般 文章链接 代码下载 酷炫的文字悬停效果 完成 一般 文章链接
  • checkbox中checked属性总结

    一 checked属性定义和用法 1 checked属性是一个布尔属性 2 checked属性规定在页面加载时应该被预先选定的
  • 数据库连接的5种方式

    数据库连接的5种方式 String url jdbc mysql localhost 3306 njustzjc1 Properties properties new Properties properties setProperty us
  • 基础理解之SESSION

    SESSION是服务器端的一种会话机制 当客户端的请求服务器创建一个SESSION时 服务器会先检测该请求里面是否包含一个惟一的sesionid 如果是 说明服务器已经为该用户创建过SESSION 只要按照该sesionid检索出该用户的s
  • 在钉钉上怎么手写_大庆市第十中学

    有关直播的那些事儿 2020 停课不停学 十中在行动 根据大庆市教育局关于网络教学工作的要求和指导意见 我校将于3月2日全面开展网络教学工作 虽然网络直播教学与线下日常教学主旨都是一样的 但由于形式的差异 对于很少体验过网络直播教学的老师来
  • 红米ac2100 刷openwrt以及刷回记录

    redmiac2100 刷机 参考 手动升级漏洞固件 https wwx lanzoux com i6iqxhqp98f 或者百度网盘链接 https pan baidu com s 1H355Ym9p TLrVOux2w2b7Q 提取码
  • Flutter开发之——Icon图标

    一 概述 Icon是支持material design的一系列图标 Icon类似于iconfont即字体图标 它是将图标做成字体文件 然后通过指定不同的字符显示不同图片 二 Icon说明 2 1 说明 在字体文件中 每一个字符都对应一个位码
  • Android内存管理

    Android内存泄露 全解析和处理办法 http www jianshu com p bf159a9c391a
  • 产品运行所需的信息检索失败。请重新安装xshell

    产品运行所需的信息检索失败 请重新安装xshell 很久没有应用Xshell进行远程服务器连接了 由于需要应用远程云计算资源 因此有需要使用这个软件 但是在今天的使用过程中出现了 问题 打开Xshell之后 找到可执行文件之后 点击运行 管
  • 【CQOI 2015】任务查询系统

    题目 传送门 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统 而你被安排完成其中的查询部分 超级计算机中的任务用三元组 Si Ei Pi 描述 Si Ei Pi 表示任务从第 Si 秒开始 在第 Ei 秒后结束 第 Si
  • 电脑开不了机启动不了

    故障现象 解决办法 1 先不要操作别的 首先想想开机之前做过什么操作 更新过什么 补丁 漏洞 软件 还是别的等等 2 重启操作系统 在开机的时候不停地按F8键 如果不停地按之后出现了一个黑底白字的菜单 可以最后一次配置试试 不行可以进入系统
  • 服务器CPU经常跑高是什么原因

    服务器在使用过程中 经常会遇见这样的情况 在长时间使用之后 系统运行会越来越慢 卡的情况 查询后台进程 CPU占用以超过90 那么高的CPU使用率 都是会由哪些因素导致的呢 1 散热故障 如机房散热不足 温度过热或者驱动故障 导致温度太高
  • html新闻滚动效果,js实现滚动新闻效果

    code js cn a display block font size 15px line height 18px text decoration none color 333 font family Arial font size 12
  • 机器学习-泛化能力笔记

    1 什么是泛化能力 在机器学习方法中 泛化能力通俗来讲就是指学习到的模型对未知数据的预测能力 在实际情况中 我们通常通过测试误差来评价学习方法的泛化能力 2 泛化误差的定义 大家马上应该发现 这个不是损失函数的期望吗 没错 泛化误差就是所学
  • C++多线程(七):unique_lock详解

    目录 unique lock取代lock guard unique lock的第二个参数 std adopt lock std try to lock std defer lock unique lock的成员函数 成员函数lock 成员函
  • 多线程(十):总结

    本章用来处理一下之前遗漏的很多问题 在多线程那一章 很多常见面试题都没有讲 这里再来补充一下 HashTable HashMap ConcurrentHashMap 之间的区别 HashTable HashMap ConcurrentHas
  • BurpSuite武器库打造之环境搭建和API介绍(上)

    0x00前言 在使用Burp Suite 以下简称Burp 来开展渗透工作的途中可能需要验证一些脑洞大开的想法 但Burp自带的功能可能无法满足你的需求 于是你迫切需要一个高度定制化的插件来实现这个功能 经查阅你得知除了Java还可以通过配