news 2026/8/28 10:57:21

如何用Gradle构建并部署Freddy扩展:从源码到Burp插件jar的完整快速开始

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用Gradle构建并部署Freddy扩展:从源码到Burp插件jar的完整快速开始

如何用Gradle构建并部署Freddy扩展:从源码到Burp插件jar的完整快速开始

【免费下载链接】freddyAutomatically identify deserialisation issues in Java and .NET applications by using active and passive scans项目地址: https://gitcode.com/gh_mirrors/fre/freddy

Freddy(Deserialization Bug Finder)是 NCC Group 出品的 Burp Suite 扩展,能自动识别 Java 与 .NET 应用中的反序列化漏洞,支持主动扫描和被动扫描。本文带你用Gradle完成从克隆源码、编译打包到生成Burp 插件 jar并部署的完整流程,新手也能快速上手。

一、环境准备:安装 JDK 11 与 Gradle

在开始构建前,请先确认本机环境:

  • JDK 11:build.gradle 中声明了sourceCompatibility = 1.11,即项目按 Java 11 编译,请确保java -version输出为 11 或更高版本;
  • Gradle:Freddy 使用 Gradle 构建系统,安装后可通过gradle --version验证;
  • 能访问 Maven Central 仓库:构建时会自动拉取依赖,如 Burp Extender API、JUnit 等。

💡 提示:如果 JDK 版本不匹配,编译时会直接报错,这是新手最常踩的坑。

二、克隆 Freddy 源码并认识目录结构

在项目根目录执行以下命令克隆代码:

git clone https://gitcode.com/gh_mirrors/fre/freddy

克隆完成后,几个关键文件值得先了解:

文件作用
settings.gradle声明根项目名为freddy
build.gradle核心构建脚本:依赖、Java 版本、jar 打包规则
src/burp/BurpExtender.java插件入口,对接 Burp 扩展 API
src/nb/freddy/modules/java/Java 平台反序列化检测模块(XStream、SnakeYAML、Kryo 等 21 个)
src/nb/freddy/modules/dotnet/.NET 平台检测模块(Json.Net、XmlSerializer 等 12 个)
BappManifest.bmfBApp 应用清单,声明插件入口与构建命令

注意:Freddy 的目录结构与 Gradle 标准布局略有不同,源码放在src、测试放在test,这一点已在build.gradle中通过sourceSets显式配置。

三、执行 gradle jar 一键构建插件

一切就绪后,进入项目根目录执行构建命令(这也是 BApp 清单中声明的官方 BuildCommand):

gradle jar

这条命令会自动完成三件事:

  1. 从 Maven Central 下载依赖:包括net.portswigger.burp.extender:burp-extender-api:1.7.22minlog日志库,以及测试用的 JUnit 4 和 PowerMock;
  2. 运行单元测试:验证代码正确性,全部通过后才会继续打包;
  3. 打出"胖 jar"build.gradle中的jar任务会把编译类路径上的所有依赖类合并进同一个 jar,生成开箱即用的自包含插件包

构建成功后,产物位于:

build/libs/freddy-2.2.5.jar

版本号2.2.5和发布组trust.nccgroup均在build.gradle中定义,文件名由项目名-版本号.jar规则自动生成。

四、部署 jar 到 Burp Suite:三步加载插件

⚠️ Freddy 需要Burp Suite Pro 或 Enterprise版本才能运行(清单中ProOnly: True)。

  1. 打开 Burp Pro,进入Extender(扩展)页签;
  2. 点击Add,选择刚才构建出的build/libs/freddy-2.2.5.jar
  3. 点击Load,加载成功后扩展列表会出现Freddy, Deserialization Bug Finder,日志区显示扩展启动信息即代表部署成功。

BappManifest.bmf中声明的EntryPoint: build/libs/freddy-2.2.5.jar与上面的产物路径完全对应,说明构建与部署环节已正确衔接。

五、部署后快速上手:被动 + 主动双扫描

插件加载后,Freddy 会提供两类能力帮你定位反序列化风险:

  • 被动扫描:监控 HTTP 流量中的类型指定符与异常特征。例如 FastJson 会在 JSON 中通过$type字段指定对象类型,Freddy 能据此识别目标使用的序列化库;
  • 主动扫描:采用异常型(触发特征报错)、时间型(利用ping造成响应延迟)、Collaborator 型(外域回连确认,标记为RCE (Collaborator))三种探测手段,尽可能把"检测"升级为"漏洞确认"。

支持的目标覆盖面很广:Java 侧含 XStream、SnakeYAML、Hessian、Kryo、BlazeDS/Red5 AMF 等 21 项;.NET 侧含 BinaryFormatter、DataContractSerializer、Json.Net 等 12 项,多个模块已具备 RCE 利用能力。

六、常见问题与排查清单

  • 构建报"无效的目标发行版 11"→ 当前 JDK 低于 11,切换 JDK 后重新执行gradle jar
  • 找不到 build/libs 目录→ 尚未成功执行构建,先确认gradle jar是否无报错退出;
  • Burp 中加载 jar 无反应→ 确认使用的是 Burp Pro/Enterprise,社区版不支持加载该插件;
  • 想单独跑测试→ 可执行gradle test,便于在改代码后快速验证。

七、总结

回顾整个流程:克隆源码 → 配置 JDK 11 环境 → 执行gradle jar→ 在 Burp Pro 中加载freddy-2.2.5.jar,四步即可完成 Freddy 反序列化检测插件的本地构建与部署。之后你只需在 Burp 中正常发起扫描,就能自动发现目标应用中的 Java / .NET 反序列化风险点。

【免费下载链接】freddyAutomatically identify deserialisation issues in Java and .NET applications by using active and passive scans项目地址: https://gitcode.com/gh_mirrors/fre/freddy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 10:56:02

PyTorch实现UNet视网膜血管分割实战指南

简介:视网膜血管分割是医学图像分析中的基础性像素级任务,其核心在于平衡细节精度与临床可用性。基于U-Net架构的分割方法因其编码-解码对称结构和跳跃连接机制,天然适配血管长程连续、局部高对比的形态特性;PyTorch框架则凭借动态…

作者头像 李华
网站建设 2026/8/28 10:55:47

C语言字符串函数深度解析:从安全使用到高效编程实践

1. 项目概述:为什么C语言字符串函数值得深挖? 在C语言的世界里,字符串处理是每个开发者都绕不开的坎。它不像Python或Java那样,有一个内置的、功能强大的 String 类。C语言的字符串,本质上就是一个以空字符 \0 结尾…

作者头像 李华
网站建设 2026/8/28 10:51:37

Spring Boot 集成 PageHelper 的完整实践(含 AOP 统一分页)

1. 引言 在实际项目中,分页查询是高频需求。PageHelper 作为 MyBatis 的通用分页插件,能零侵入地实现物理分页。本文将介绍两种集成方式: 常规方式:在 Service 层手动调用 PageHelper.startPage()。 进阶方式:通过 A…

作者头像 李华
网站建设 2026/8/28 10:47:42

软件项目参数估算法:从历史数据到精准成本工期预测

1. 项目概述:参数估算法在软件项目管理中的核心定位 在软件项目管理的实战中,最让项目经理头疼的几件事里,成本与工期估算绝对排在前列。多少次,我们拍着胸脯向老板或客户承诺了一个交付日期和预算,结果项目中期就发现…

作者头像 李华
网站建设 2026/8/28 10:47:33

蓝桥杯单片机国赛实战:从模块化设计到系统调试的工程思维

1. 从一份“参考答案”说起:国赛程序题的实战复盘 最近在整理资料时,翻到了第十届蓝桥杯单片机国赛的程序题参考答案。这份资料在不少备赛群里流传,很多同学拿到手的第一反应可能就是“抄作业”——直接复制代码,试图在自己的开发…

作者头像 李华
网站建设 2026/8/28 10:46:58

自托管沙箱工作区:让AI Agent安全地自我进化

如果你最近在用 AI 编程助手跑稍微复杂的开发任务,大概率会遇到一个共同的瓶颈:AI 能改代码,但改不动自己的运行环境。让它装一个依赖,环境可能不干净;让它跑一下测试,工作目录可能被上一次的中间产物污染&…

作者头像 李华