Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Java-Deserialization-Scanner — 用于检测和利用 Java 反序列化漏洞的 Burp Suite 一体化插件 | Kitploit
工具/GitHubGitHub/federicodotta/java-deserialization-scanner
漏洞利用框架Payload生成漏洞分析Web应用程序漏洞利用渗透测试
GitHubfedericodotta/java-deserialization-scanner

Java-Deserialization-Scanner

用于检测和利用 Java 反序列化漏洞的 Burp Suite 一体化插件

查看仓库
80217544年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Java Deserialization Scanner

Java Deserialization Scanner 是一个 Burp Suite 插件,旨在检测和利用 Java 反序列化漏洞。它由 Federico Dotta 编写,他是 HN Security 的首席安全分析师。

该插件由三个不同的组件组成:

  1. 与 Burp Suite 主动和被动扫描器的集成
  2. 手动测试器,用于在自定义插入点上检测 Java 反序列化漏洞
  3. 利用器,允许使用 frohoff ysoserial(https://github.com/frohoff/ysoserial)主动利用 Java 反序列化漏洞

作者

  • Federico Dotta,HN Security 首席安全分析师

贡献者

  • Jeremy Goldstein
  • Andras Veres-Szentkiralyi

简要演练(24/05/17)

一篇包含如何使用插件各组件简要演练的简短文章,可在以下 URL 找到: https://web.archive.org/web/20201130104913/https://techblog.mediaservice.net/2017/05/reliable-discovery-and-exploitation-of-java-deserialization-vulnerabilities/

与 Burp Suite 主动和被动扫描器的集成

Java Deserialization Scanner 使用由 "ysoserial"(frohoff 和 gebl 创建的工具)的修改版本生成的自定义 payload,来检测 Java 反序列化漏洞。原始工具(https://github.com/frohoff/ysoserial)使用 Runtime.exec 函数生成用于在系统上执行命令的 payload。然而,通常无法看到命令的输出,因此基于这类函数编写扫描器并不简单。出于这个原因,我们使用了一个修改版本的 ysoserial 来生成不同类型的 payload,这些 payload 适用于漏洞检测而非漏洞利用:

  1. 执行同步睡眠(sleep)功能的 payload,通过响应时间来判断漏洞是否存在
  2. 执行 DNS 解析的 payload,通过 Burp Suite 内置的 Burp Suite Collaborator 来判断漏洞是否存在

目前,Java Deserialization Scanner 的被动检查会报告 HTTP 请求中是否存在序列化 Java 对象,而主动检查则会主动扫描是否存在不安全的反序列化函数,以及是否存在以下不安全库:

  1. Apache Commons Collections 3(最高 3.2.1),包含五条不同的利用链
  2. Apache Commons Collections 4(最高 4.4.0),包含两条不同的利用链
  3. Spring(最高 4.2.2),包含两条不同的利用链
  4. Java 6 和 Java 7(最高 Jdk7u21),无需任何不安全库
  5. Hibernate 5
  6. JSON
  7. Rome
  8. Java 8(最高 Jdk8u20),无需任何不安全库
  9. Apache Commons BeanUtils
  10. Javassist/Weld
  11. JBoss Interceptors
  12. Mozilla Rhino(两条不同的利用链)
  13. Vaadin

此外,已引入 URLSNDS payload,用于在没有任何不安全库的情况下主动检测 Java 反序列化。如果插件只发现 URLDNS 问题(且没有不安全的库),攻击者可能可以执行 DoS 攻击,但要实现远程代码执行则需要更多的努力。更多详情请参阅此链接。

插件的所有组件支持以下编码:

  1. 原始(Raw)
  2. Base64
  3. Ascii Hex
  4. GZIP
  5. Base64 GZIP

在 test 文件夹中有一些简单的 Java 服务器应用,可用于测试插件。每个应用都使用了不同的存在漏洞的 Java 库。

手动测试器

插件提供了一个专用标签页,可在自定义插入点上使用 sleep 和 DNS payload 启动检测,以便在那些奇怪入口点无法通过扫描器进行检测的特殊情况下,检查 Java 反序列化漏洞。手动测试器的结果可以插入到 Burp Suite 扫描器结果中。

手动测试器提供了一种额外的检测方法:CPU 检测。CPU 检测方法基于 Wouter Coekaerts 的 SerialDOS 工作(https://gist.github.com/coekie/a27cc406fc9f3dc7a70d),即使没有任何不安全的库,也能通过使用一个在反序列化过程中消耗大量 CPU 周期的对象,并检查响应时间来检测反序列化问题。CPU 检测方法默认不包含在主动扫描检查中,因为它必须谨慎使用:发送大量“轻量级”的 SerialDOS payload 仍可能对老旧或高负载系统造成问题。

利用器

在发现 Java 反序列化漏洞之后,可以使用“利用”专用标签页来主动利用该问题。“利用”标签页提供了一个舒适的界面来利用反序列化漏洞。该标签页使用 ysoserial 工具生成利用向量,并将生成的 payload 包含在 HTTP 请求中。ysoserial 接受一个不安全库和一个命令作为参数,并生成一个二进制形式的序列化对象,该对象可以被发送到存在漏洞的应用程序,以在目标系统上执行命令(显然,前提是目标应用程序存在漏洞)。“利用”标签页支持与插件检测部分相同的编码格式。

截图

alt tag

安装

  1. 下载 Burp Suite:http://portswigger.net/burp/download.html
  2. 从 BApp Store 安装 Java Deserialization Scanner,或按照以下步骤操作:
  3. 下载 Java Deserialization Scanner 的最新版本
  4. 打开 Burp -> Extender -> Extensions -> Add -> 选择 JavaDeserializationScannerXX.jar 文件

用户指南

  1. 安装后,Java Deserialization Scanner 的主动和被动检查将被添加到 Burp Suite 扫描器中(可以在选项标签页中禁用这些检查)
  2. 直接运行主动或被动扫描器,以同时检查是否存在不安全的 Java 反序列化
  3. 使用“手动测试”专用标签页,可以设置注入点并使用所有 payload 执行攻击
  4. 使用“利用”专用标签页,可以主动利用 Java 反序列化漏洞
  5. “配置”中包含插件正常运行所需的所有配置

改进 Java Deserialization Scanner

为了改进此扩展,请报告插件中发现的任何问题。此外,如果您想向我报告任何已公开的、可用于利用此弱点的 Java 库,如果我有时间,我会在插件中添加相应的主动检查。

免责声明

本软件纯粹为学术研究和开发有效的防御技术而创建,除非明确授权,否则不应用于攻击系统。项目维护者不对软件的滥用负责或承担责任。请负责任地使用。

MIT 许可证

版权所有(c)2020 Java Deserialization Scanner

特此免费授予获得本软件及关联文档文件(“软件”)副本的任何人无限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供本软件的人员这样做,但须满足以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或实质部分中。

本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易而产生、引起的任何索赔、损害或其他责任负责,无论是合同诉讼、侵权或其他行为。

下载工具