忆享科技戟星安全实验室|Burp插件开发-环境配置篇
戟星安全实验室
忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等右键新建菜单 。
本文约17332字,17图 阅读约需5分钟右键新建菜单 。
前言
从环境配置开始,从零开始开发一个CORS漏洞插件右键新建菜单 。
burp插件开发系列文章-第一篇右键新建菜单 。
环境配置
新建项目
在 IDEA 新建一个 gradle 项目,点击 Create New Project右键新建菜单 。选择 Gradle 项目, Gradle 是一个构建工具,可以方便加载所需的代码仓库。
添加依赖
新建完后,在 build.gradle 文件中添加以下依赖,也就是加载 burpsuite 插件API ,自动从远程仓库加载 burpsuite API 右键新建菜单 。
build.gradle 文件的内容:
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '5.2.0'
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
//compile('net.portswigger.burp.extender:burp-extender-api:1.7.13')
compile('net.portswigger.burp.extender:burp-extender-api:2.3')
新建包名
接着在 /src/main/java 目录处创建一个名为 burp 的包名右键新建菜单 ,在 java 目录处右键 -> 新建 -> Package
接着在该包上右键右键新建菜单 ,新建一个名为 BurpExtender 的类
这个包名和类名是固定的,burpsuite 加载插件时就是通过 burp.BurpExtender 来查找的,如果不这样起名,会报 ClassNotFoundException异常报错右键新建菜单 。
BurpExtender 类需要实现 IBurpExtender 接口,burp 在加载插件时,会调用该接口,并传递IBurpExtenderCallbacks 接口仅我们使用右键新建菜单 。
我们写一个最简单的例子测试右键新建菜单 。
package burp;
import java.io.PrintWriter;
public class BurpExtender implements IBurpExtender {
@Override
public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) {
//设置插件名字
callbacks.setExtensionName("GCC");
// 获取右键新建菜单 我们的输出流
PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true);
// 向输出流写入右键新建菜单 我们需要打印的信息
stdout.println("Hello GCC");
编译该项目成 jar 包
点击右侧的 gradle 菜单,展开菜单,双击 shadowjar ,gradle 会自动编译项目成 jar 包右键新建菜单 。
编译成功后,jar 包位于 build 目录中的 libs 目录中右键新建菜单 。
插件测试
将插件导入进Burp右键新建菜单 。
插件加载成功并成功打印输出的信息右键新建菜单 。
查看相关资料测试Burp的主动扫描模块和被动扫描模版
主动扫描doActiveScan
调用主动扫描的插件时,将burp默认的payload关闭开启主动扫描的时候,也会默认被动扫描右键新建菜单 。
被动扫描doPassiveScan
被动扫描,burp默认是开启被动扫描的,即每次的数据包都会放到被动扫描模块进行扫描右键新建菜单 。那么我们可以重定义被动扫描方法,让每次数据包的被动扫描发送我们定义的payloads。
END
爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。