协议解析器java-gps协议解析
发布时间:2023-05-17 10:10 浏览次数:次 作者:佚名
关于ZKar
ZKar是一款功能强大的Java序列化协议分析工具协议解析器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还提供了命令行实用工具协议解析器java,我们可以直接使用下列命令进行使用:
$ 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开源许可证协议。
项目地址
参考资料