stoic-crawler/CVE-2025-64512

GitHub: stoic-crawler/CVE-2025-64512

针对 pdfminer.six 反序列化漏洞 CVE-2025-64512 的 PoC 利用工具,通过恶意 PDF 触发任意命令执行并获取反向 shell。

Stars: 0 | Forks: 0

# CVE-2025-64512 – pdfminer.six 反序列化 PoC ## 概述 本概念验证演示了 **pdfminer.six** (CVE-2025-64512) 中的一项漏洞,该漏洞可在处理恶意 PDF 时导致任意命令执行。该漏洞利用程序使用了一个特制的 PDF,该 PDF 引用了一个恶意的、经 gzip 压缩的 Python pickle。当存在漏洞的应用程序解析该 PDF 时,会加载 pickle 并执行嵌入的 payload。 包含的 PoC 被配置为执行 Python 反向 shell,但该 payload 可以被替换为任何命令。 ## 环境要求 * Python 3 * `requests` 安装所需的依赖: ``` pip install requests ``` ## 配置 在运行漏洞利用程序之前,请编辑 `exploit.py` 的配置部分: ``` BASE_URL = "" UPLOAD_DIR = "" LHOST = "" LPORT = 4444 ``` ### BASE_URL 存在漏洞的上传 endpoint 的 URL。 示例: ``` BASE_URL = "http://target/upload.php" ``` 漏洞利用程序会将恶意 PDF 和压缩的 pickle 一并上传至该 endpoint。 ### UPLOAD_DIR 目标服务器上存储上传文件的绝对目录。 示例: ``` UPLOAD_DIR = "/var/www/html/uploads" ``` 此路径会被嵌入到生成的 PDF 中,并且**必须与存在漏洞的应用程序稍后读取已上传 pickle 的位置相匹配**。 如果上传目录未知,请在信息枚举阶段确定它。视具体应用程序而定,有效的技术包括: * 查看应用程序源代码(如果有) * 检查错误消息或 stack trace * 查找配置文件 * 确定上传文件的提供服务位置 * 枚举可预测的上传位置 * 在适当的时候对可能的上传路径进行模糊测试 常见位置包括: ``` /var/www/html/uploads /var/www/uploads /srv/www/uploads /opt/application/uploads ``` 正确的目录完全取决于目标应用程序。 ### LHOST 您的监听端 IP 地址。 示例: ``` LHOST = "10.10.14.5" ``` ### LPORT 反向 shell 的监听端口。 示例: ``` LPORT = 4444 ``` 在运行漏洞利用程序之前,请启动监听器: ``` nc -lvnp 4444 ``` ## 用法 执行漏洞利用程序: ``` python3 exploit.py ``` 该脚本将会: 1. 生成一个恶意 pickle。 2. 将其压缩为 `evil.pickle.gz`。 3. 生成一个引用该 pickle 的恶意 PDF。 4. 上传这两个文件。 5. 触发 PDF 处理。 6. 如果目标存在漏洞,则执行 payload。 ## 自定义 Payload 通过修改传递给以下位置的命令,您可以执行任何操作系统命令,而不仅仅是反向 shell: ``` create_pickle_with_cmd(command) ``` 示例包括: ``` id whoami uname -a cat /etc/passwd ``` ## 注意事项 * 存在漏洞的应用程序必须使用存在漏洞版本的 **pdfminer.six** 来处理上传的 PDF。 * 已上传的 pickle 必须在特制 PDF 引用的路径中保持可访问状态。 * 成功的漏洞利用取决于目标的处理工作流和文件存储布局。 ## 免责声明 本概念验证仅用于教育目的、安全研究和授权的渗透测试。请仅在获得明确许可进行安全测试的系统上使用它。
标签:CISA项目, PDF处理, Python, 反序列化漏洞, 无后门, 网络信息收集