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

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

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

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

工具目录

分类

查看所有分类
Loading categories
zkar — 基于Go的Java序列化协议分析器,可解析、转储和生成反序列化载荷,支持ysoserial gadget,并提供用于数据操作的库。 | Kitploit
工具/GitHubGitHub/phith0n/zkar
Payload生成漏洞分析漏洞利用二进制分析
GitHubphith0n/zkar

zkar

基于Go的Java序列化协议分析器,可解析、转储和生成反序列化载荷,支持ysoserial gadget,并提供用于数据操作的库。

查看仓库
653544个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ZKar

ZKar 是一款使用 Go 实现的 Java 序列化协议分析工具。该工具仍处于 开发中 阶段,因此尚无完整的 API 文档和贡献指南。

ZKar 提供:

  • 纯 Go 编写的 Java 序列化 payload 解析器和查看器,无需 CGO 或 JDK
  • 从 Java 序列化协议到 Go 结构体的转换
  • 一个可操作 Java 序列化数据的 Go 库
  • 开发中:用 Go 实现 ysoserial
  • 开发中:Java 类字节码的解析、查看和操作
  • 开发中:Go 实现的 RMI/LDAP

📦 安装

ZKar 的使用很简单。使用 go get 安装 ZKar 及其库和依赖:

root@kitploit:~
go get -u github.com/phith0n/zkar

接下来,在你的应用中使用 github.com/phith0n/zkar/*:

root@kitploit:~
package main

import (
  "fmt"
  "github.com/phith0n/zkar/serz"
  "log"
  "os"
)

func main() {
  fs, _ := os.Open("./testcases/ysoserial/CommonsCollections6.ser")
  defer fs.Close()
  serialization, err := serz.FromReader(fs)
  if err != nil {
    log.Fatal("parse error")
  }

  fmt.Println(serialization.ToString())
}

这里 是一个示例,展示了如何读取现有 payload 并将其修改为 UTF-8 超长编码 payload。

💻 命令行工具

ZKar 还提供了一个命令行工具,您可以直接使用:

root@kitploit:~
$ go run main.go
NAME:
   zkar - A Java serz tool

USAGE:
   main [global options] command [command options] [arguments...]

COMMANDS:
   generate  generate Java serz attack payloads
   dump      parse the Java serz streams and dump the struct
   help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h  show help (default: false)

例如,您可以像这样转储来自 ysoserial 的 CommonsBeanutils3 payload:

root@kitploit:~
$ go run main.go dump -f "$(pwd)/testcases/ysoserial/CommonsBeanutils3.ser"

asciicast

🛠 测试

ZKar 是一个经过充分测试的工具,已通过所有 ysoserial 生成的 gadget 的解析和重建测试。这意味着由 ysoserial 生成的 gadget 可以被 ZKar 解析,并且解析后的结构体可以转换回与原始数据相等的字节字符串。

注意:要解析 JDK8u20 payload,您需要为 dump 命令添加 --jdk8u20 标志。由于该 payload 不是一个有效的序列化数据流,有必要通过此标志告知 ZKar 对数据进行修补。

📝 待办事项

  • Java 字节码解析器和生成器
  • JDK/JRE 8u20 Gadget 支持
  • 序列化 payload 生成器
  • Go 实现的 RMI/LDAP
  • 支持读写 UTF-8 超长编码功能

⚖️ 许可证

ZKar 采用 MIT 许可证发布。参见 LICENSE

👀 参见

  • SerializationDumper: 一种以更易读的形式转储和重建 Java 序列化流及 Java RMI 数据包内容的工具。
  • ysoserial: 一种概念验证工具,用于生成利用不安全的 Java 对象反序列化的 payload。
  • Java-Deserialization-Cheat-Sheet: 关于 Java 反序列化漏洞的速查表。
下载工具
Gadget包来源解析重建解析时间
AspectJWeaverysoserial✅✅80.334µs
BeanShell1ysoserial✅✅782.613µs
C3P0ysoserial✅✅98.321µs
Click1ysoserial✅✅573.298µs
Clojureysoserial✅✅72.415µs
CommonsBeanutils1ysoserial✅✅461.15µs
CommonsCollections1ysoserial✅✅64.484µs
CommonsCollections2ysoserial✅✅508.918µs
CommonsCollections3ysoserial✅✅564.071µs
CommonsCollections4ysoserial✅✅535.449µs
CommonsCollections5ysoserial✅✅137.609µs
CommonsCollections6ysoserial✅✅68.753µs
CommonsCollections7ysoserial✅✅178.549µs
FileUpload1ysoserial✅✅35.39µs
Groovy1ysoserial✅✅150.991µs
Hibernate1ysoserial✅✅789.674µs
Hibernate2ysoserial✅✅168.624µs
JBossInterceptors1ysoserial✅✅632.581µs
JRMPClientysoserial✅✅32.967µs
JRMPListenerysoserial✅✅38.263µs
JSON1ysoserial✅✅2.157225ms
JavassistWeld1ysoserial✅✅468.596µs
Jdk7u21ysoserial✅✅355.01µs
Jython1ysoserial✅✅216.862µs
MozillaRhino1ysoserial✅✅1.775193ms
MozillaRhino2ysoserial✅✅409.124µs
Myfaces1ysoserial✅✅22.997µs
Myfaces2ysoserial✅✅38.131µs
ROMEysoserial✅✅485.804µs
Spring1ysoserial✅✅797.469µs
Spring2ysoserial✅✅358.041µs
URLDNSysoserial✅✅21.502µs
Vaadin1ysoserial✅✅438.729µs
Wicket1ysoserial✅✅23.509µs
JDK8u20*pwntester✅✅529.3µs