⚠️ 重要提示: 这是 CVE-2025-27520 漏洞的安全教学模拟。
项目中包含模拟服务(Flask)和安全的 PoC 扫描器(Python)。
该模拟在收到测试标记时会在data/中创建证明文件,而不是执行任意命令。
CVE-2025-27520-final/
├── 📄 README_ru.md # 本文档文件
├── 🐳 Dockerfile # 实验台镜像(Flask)
├── 🐳 docker-compose.yml # 容器启动配置
├── 📊 result.json # 扫描器输出示例
├── ⚙️ setup.cfg # flake8 配置
├── 📁 app/ # 服务源代码
│ ├── 🐍 app.py # 基于 Flask 的模拟服务
│ └── 📦 requirements.txt # 服务依赖
├── 📁 src/ # 扫描器源代码
│ ├── 🐍 scanner.py # PoC / 扫描器(Python)
│ └── 📦 requirements.txt # 扫描器依赖
├── 📁 data/ # 可挂载的证明文件目录
---
## 🎯 漏洞简要说明
**CVE-2025-27520(模拟)** — 有漏洞的反序列化 / 失效的访问控制演示
**在真实产品中,这可能导致:**
- 权限提升
- 远程代码执行
- 敏感数据泄露
**在本教学版本中,我们:**
- 通过创建证明文件安全地确认漏洞
- 提供轻量级实验台用于本地测试
- 遵循负责任的披露原则
---
## 🛠 系统要求
- **操作系统:** Linux
- **Docker:** Docker
- **Python:** 3.11 或更高版本
---
## 🚀 快速开始
### 1. 启动服务
```bash
docker-compose up -d
curl http://127.0.0.1:5000/health
预期响应: {"status":"ok"} 或 HTTP 200
python3 -m venv venv
source venv/bin/activate
pip install -r src/requirements.txt
python3 src/scanner.py --url http://127.0.0.1:5000
cat result.json
ls -l data/
cat data/EVIDENCE_LANG_BENTO_SIM.txt
# 在项目根目录下
docker-compose build --no-cache
docker-compose up -d
docker ps
docker-compose ps
docker logs bento-sim --tail 100
预期结果: 容器 bento-sim 处于 Up 状态,端口映射为 0.0.0.0:5000->5000/tcp
--url 参数接受目标 URLsource venv/bin/activate
python3 src/scanner.py --url http://127.0.0.1:5000
[
{
"ip": "http://127.0.0.1:5000",
"vuln": true
}
]
主要端点:
POST /simulate_deserialize - 接收包含 payload 键的 JSONGET /evidence - 检查证明文件是否存在GET /health - 服务健康检查工作原理:
EVIDENCE_TRIGGER 时创建证明文件0.0.0.0:5000data/EVIDENCE_LANG_BENTO_SIM.txt - 证明文件,模拟成功后创建result.json - 扫描结果,由 PoC 脚本生成vuln: falsedocker ps
curl http://127.0.0.1:5000/health
curl -v -X POST http://127.0.0.1:5000/simulate_deserialize \
-H "Content-Type: application/json" \
-d '{"payload":"Hello EVIDENCE_TRIGGER"}'
预期响应: {"result":"evidence created"}
docker logs bento-sim --tail 200
sudo ss -ltnp | grep 5000
sudo iptables -L -n -v
pip install black autopep8
black src/scanner.py
# 或
autopep8 --in-place --aggressive --aggressive src/scanner.py
7z a -v3g -m0=Copy "CVE-2025-27520-stand.7z" "file.ova"
tar -tf file.ova | head -n 20
File → ImportCVE-2025-27520-final/
├── 📄 README_ru.md
├── 🐳 Dockerfile
├── 🐳 docker-compose.yml
├── 📁 app/
├── 📁 src/
├── 📊 result.json
├── 📁 data/
zip -r CVE-2025-27520-final.zip CVE-2025-27520-final
sha256sum CVE-2025-27520-final.zip > CVE-2025-27520-final.zip.sha256
# 对于 ZIP
unzip -t CVE-2025-27520-final.zip
---