ZKar:一款功能强大的Java序列化协议分析工具
关于ZKar
ZKar是一款功能强大的Java序列化协议分析工具,该工具基于Go语言开发,目前仍然处于积极开发阶段。
当前版本的ZKar提供了下列功能:
1、嵌入了一个Java序列化Payload解析器和查看器,基于纯Go开发,不需要CGO或JDK;
2、可将Java序列化协议转换为Go结构;
3、提供了一个可以操作Java序列化数据的Go库;
4、WIP:Go语言实现的ysoserial;
5、WIP:Java类字节码解析器、查看器和数据操作;
6、WIP:Go语言实现的RMI/LDAP;
工具安装
ZKar的安装非常简单,我们可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/phith0n/zkar.git
或者直接使用“go get”命令来安装ZKar以及相关的依赖组件和代码库:
go get -u github.com/phith0n/zkar
接下来,使用“github.com/phith0n/zkar/*”配置应用程序:
package main import ( "fmt" "github.com/phith0n/zkar/serz" "io/ioutil" "log" ) func main() { data, _ := ioutil.ReadFile("./testcases/ysoserial/CommonsCollections6.ser") serialization, err := serz.FromBytes(data) if err != nil { log.Fatal("parse error") } fmt.Println(serialization.ToString()) }
命令行实用工具
ZKar还提供了命令行实用工具,我们可以直接使用下列命令进行使用:
$ go run main.go NAME: zkar - A Java serz tool USAGE: main [global options] command [command options] [arguments...] COMMANDS: generate 生成Java序列化攻击Payload dump 解析Java序列化数据流并导出数据结构 help, h 显示命令列表和帮助信息 GLOBAL OPTIONS: --help, -h 显示帮助信息
工具使用样例
下列命令可以从ysoserial导出CommonsBeanutils3 Payload:
$ go run main.go dump -f "$(pwd)/testcases/ysoserial/CommonsBeanutils3.ser"
测试
ZKar是一款经过大量测试的工具,并通过了所有ysoserial生成的小工具的解析和重建测试。这意味着由ysoserial生成的gadget可以被ZKar解析,解析后的数据结构可以转换为与原始字符串相等的字节字符串:
工具使用演示
演示视频:【点我观看】
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
ZKar:【GitHub传送门】
参考资料
https://github.com/frohoff/ysoserial
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录