skills/code-audit/java/java-serialization-audit/SKILL.md
Java 源码序列化类漏洞审计。当在 Java 白盒审计中需要检测序列化/反序列化相关漏洞时触发。 覆盖 3 类风险: Java 原生反序列化(ObjectInputStream/Gadget Chain/ysoserial)、 XXE(DocumentBuilderFactory/SAXParser/XMLInputFactory/TransformerFactory/SchemaFactory 五种解析器)、 模板注入 SSTI(Velocity/FreeMarker/Thymeleaf 模板引擎代码执行)。 Java 反序列化是 Java 生态最具特色的高危漏洞类型,Gadget Chain 分析是核心难点。
npx skillsauth add wgpsec/AboutSecurity java-serialization-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本 skill 聚焦源码层面判断"反序列化/XXE/SSTI 是否成立",核心工作是:白盒确认反序列化入口点、追踪数据来源、评估 classpath 中可用 Gadget 链、验证 XML 解析器安全配置、检查模板引擎渲染上下文。构造 exploit payload、远程利用链发送等运行时黑盒技术属于对应 exploit skill 范畴。
| 类型 | 典型 Sink | 利用条件 | 严重度 |
|------|-----------|----------|--------|
| Java 反序列化 | ObjectInputStream.readObject(), XMLDecoder.readObject() | 用户可控序列化流 + classpath 存在可用 Gadget Chain | Critical |
| XXE | DocumentBuilderFactory, SAXParser, XMLInputFactory, TransformerFactory, SchemaFactory | 外部实体/DTD 未禁用 + 用户可控 XML 输入 | High-Critical |
| SSTI | Velocity.evaluate, FreeMarker Template, Thymeleaf 预处理表达式 | 用户输入直接进入模板编译/渲染上下文 | Critical |
ObjectInputStream.readObject()、ObjectInputStream.readUnshared()、XMLDecoder.readObject()、自定义 readObject/readResolve/readExternal 实现中的额外攻击面AC ED 00 05 或 Base64 编码 rO0AB)、RMI/JMX 远程调用、JMS 消息队列、Redis/Memcached 缓存反序列化、文件读取、ViewState、Cookie/Session 序列化存储pom.xml/build.gradle 及 classpath 中是否存在已知 Gadget 链的依赖库(commons-collections 3.x/4.x、commons-beanutils、spring-core、Groovy、hibernate-core 等),版本是否在受影响范围内ObjectInputFilter 是否配置、白名单 vs 黑名单策略、SerialKiller/NotSoSerial 等第三方防护库是否启用、resolveClass 是否被重写为白名单校验DocumentBuilderFactory: setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)SAXParserFactory: 同上 + setFeature("http://xml.org/sax/features/external-general-entities", false) + setFeature("http://xml.org/sax/features/external-parameter-entities", false)XMLInputFactory (StAX): setProperty(XMLInputFactory.SUPPORT_DTD, false) + setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false)TransformerFactory: setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "") + setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "")SchemaFactory: setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "") + setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "")jar: 协议可触发远程文件下载与解压、netdoc: 协议(旧版 JDK)等价于 file://Velocity.evaluate(context, writer, tag, userTemplate) — 若 userTemplate 参数用户可控则直接 RCEnew Template("t", new StringReader(userInput), cfg).process(dataModel, writer) — 用户输入作为模板源编译即危险return "user/" + input 时 input 可注入 __${expr}__ 预处理表达式触发 SpEL → RCETemplateClassResolver.ALLOWS_NOTHING_RESOLVER 禁用 ?new() 内建函数、Velocity 使用 SecureUberspector、Thymeleaf 限制视图名不可拼接用户输入ObjectInputStream.readObject()/XMLDecoder.readObject() 调用点已逐一审查testing
Azure 云环境渗透测试总体方法论。当目标使用 Azure/Microsoft 365/Entra ID、发现 Azure 相关资产(Blob Storage/App Service/Azure VM/Azure Functions)、获取 Azure 凭据(Service Principal/Managed Identity/Access Token)、或需要对 Azure 环境进行安全评估时使用。提供从未授权枚举到 Entra ID 攻击、服务提权、Cloud-to-OnPrem 横向移动的全流程决策树。覆盖 35+ Azure 服务攻击面
tools
Mythic C2 操作方法论。当需要部署 Mythic、选择 Mythic Agent、安装 C2 Profile、配置 HTTP/DNS/WebSocket/SMB/TCP 通信、生成 payload、管理回连任务,或把 Mythic 作为跨平台 C2 框架用于授权红队演练时使用。覆盖 mythic-cli 安装、Agent/Profile 选择、SSL 证书配置、payload 构建和基础 OPSEC 判断
development
Docker 安全测试与容器渗透方法论。当需要评估 Docker 容器、Docker Daemon、Docker Registry、镜像层、构建产物或容器逃逸风险时使用。覆盖容器环境识别、特权容器逃逸、docker.sock/Remote API 利用、procfs/cgroup/capabilities 滥用、Docker 用户组提权、运行时/内核 CVE、Registry 枚举、镜像层 Secret 分析和构建上下文泄露。发现 Docker 容器环境、Registry 暴露、镜像凭据或容器配置错误时应使用此技能
development
使用 PadBuster 进行 Padding Oracle 攻击。当发现 Web 应用使用 CBC 模式加密且存在 Padding Oracle 漏洞时使用。PadBuster 可自动解密密文和伪造任意明文对应的合法密文,适用于加密 Cookie/Token/URL 参数。任何涉及 Padding Oracle 攻击、CBC 密文解密、Cookie 伪造的场景都应使用此技能