
Escáner PoC seguro y laboratorio Docker para CVE-2023-27372, un RCE en SPIP CMS anterior a 4.2.1. Verifica la vulnerabilidad mediante el endpoint de recuperación de contraseña sin acciones destructivas.
Este repositorio contiene:
stand/ — laboratorio (entorno vulnerable) en Docker: SPIP + MariaDB.poc/ — herramienta de verificación (scanner) en Python que implementa la confirmación segura de la vulnerabilidad (Safe PoC) sin acciones destructivas.El proyecto está diseñado para demostrar y analizar la vulnerabilidad CVE-2023-27372 en SPIP hasta 4.2.1. La verificación se realiza mediante la funcionalidad de restablecimiento de contraseña (endpoint spip.php?page=spip_pass) y se confirma ejecutando un comando seguro en el laboratorio.
.
├── stand/ # Уязвимый стенд (SPIP + MariaDB) на Docker Compose
│ ├── docker-compose.yml
│ └── ... (Dockerfile/скрипты стенда, persist volumes и т.п.)
└── poc/ # Safe PoC scanner (Python)
├── Dockerfile
├── README.md # (опционально) локальная документация PoC
└── src/
├── scanner.py
├── utils.py
└── pyproject.toml
cd stand
docker compose up -d
docker compose ps
El servicio estará disponible en:
http://127.0.0.1:8080/http://127.0.0.1:8080/spip.php?page=loginVe a poc/ y construye la imagen Docker del escáner:
cd ../poc
# Если в вашей среде бывают проблемы с DNS во время сборки, используйте:
docker build --network=host -t spip-poc-scanner .
Si no hay problemas de DNS, puedes usar el comando normal:
docker build -t spip-poc-scanner .
Ejecución recomendada para el laboratorio local:
docker run --rm --network="host" \
-v "$(pwd)":/app/out \
spip-poc-scanner \
-i http://127.0.0.1:8080 \
-o /app/out/results.json
Tras la ejecución aparecerá results.json (ejemplo de estructura):
[
{
"ip": "http://127.0.0.1:8080",
"vuln": true
}
]
Si tu implementación del PoC confirma la ejecución mediante la creación de un archivo (por ejemplo, /tmp/pwned.txt), puedes comprobarlo dentro del contenedor web.
Variante sin nombre de contenedor fijo:
cd ../stand
WEB_CID="$(docker compose ps -q web)"
docker exec "$WEB_CID" ls -l /tmp/pwned.txt
Si el archivo existe, esto confirma la posibilidad de ejecutar comandos en el laboratorio.
pip)spip.php?page=spip_passTemporary failure in name resolution al ejecutar docker buildUsa la construcción con la red del host:
docker build --network=host -t spip-poc-scanner .
Detén y elimina los volúmenes:
cd stand
docker compose down -v
docker compose up -d
El proyecto se ha creado exclusivamente con fines educativos y para realizar pruebas legales en su propio entorno de laboratorio. El autor no se hace responsable de ningún uso no autorizado.
---::contentReference[oaicite:0]{index=0}