Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
zkar — Go 기반 Java 직렬화 프로토콜 분석기로, ysoserial 가젯 지원과 데이터 조작 라이브러리를 포함하며 역직렬화 페이로드를 파싱, 덤프 및 생성합니다. | Kitploit
도구/GitHubGitHub/phith0n/zkar
Payload GenerationVulnerability AnalysisExploitationBinary Analysis
GitHubphith0n/zkar

zkar

Go 기반 Java 직렬화 프로토콜 분석기로, ysoserial 가젯 지원과 데이터 조작 라이브러리를 포함하며 역직렬화 페이로드를 파싱, 덤프 및 생성합니다.

저장소 보기
6535464개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ZKar

ZKar는 Go로 구현된 Java 직렬화 프로토콜 분석 도구입니다. 이 도구는 아직 진행 중인 작업이므로 완전한 API 문서와 기여 가이드가 없습니다.

ZKar는 다음을 제공합니다:

  • 순수 Go로 작성된 Java 직렬화 페이로드 파서 및 뷰어, CGO나 JDK가 필요하지 않습니다
  • Java 직렬화 프로토콜에서 Go 구조체로
  • Java 직렬화 데이터를 조작할 수 있는 Go 라이브러리
  • 작업 중: ysoserial의 Go 구현
  • 작업 중: 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())
}

여기는 기존 페이로드를 읽고 UTF-8 오버롱 인코딩 페이로드로 수정하는 방법을 보여주는 예제입니다.

💻 명령줄 유틸리티 도구

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를 덤프할 수 있습니다:

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

asciicast

🛠 테스트

ZKar는 모든 ysoserial 생성 가젯의 파싱 및 재구축 테스트를 통과한 잘 테스트된 도구입니다. 즉, ysoserial에 의해 생성된 가젯은 ZKar로 파싱될 수 있으며, 파싱된 구조체는 원본과 동일한 바이트 문자열로 다시 변환될 수 있습니다.

참고: JDK8u20 페이로드를 파싱하려면 dump 명령에 --jdk8u20 플래그를 추가해야 합니다. 이 페이로드는 유효한 직렬화 데이터 스트림이 아니므로, 이 플래그를 통해 ZKar가 데이터를 패치하도록 지정해야 합니다.

📝 TODO

  • Java 바이트코드 파서 및 생성기
  • JDK/JRE 8u20 가젯 지원
  • 직렬화 페이로드 생성기
  • Go에서의 RMI/LDAP 구현
  • UTF-8 오버롱 인코딩 기능 읽기/쓰기 지원

⚖️ 라이선스

ZKar는 MIT 라이선스로 배포됩니다. LICENSE를 참조하세요.

👀 참고 자료

  • SerializationDumper: Java 직렬화 스트림 및 Java RMI 패킷 내용을 더 인간이 읽기 쉬운 형태로 덤프하고 재구축하는 도구입니다.
  • ysoserial: 안전하지 않은 Java 객체 역직렬화를 악용하는 페이로드를 생성하기 위한 개념 증명 도구입니다.
  • Java-Deserialization-Cheat-Sheet: Java 역직렬화 취약점에 관한 치트 시트입니다.
도구 다운로드
가젯패키지파싱재구축파싱 시간
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