
Scanner PoC seguro e laboratório Docker para CVE-2023-27372, um RCE no SPIP CMS antes da versão 4.2.1. Verifica a vulnerabilidade via endpoint de recuperação de senha sem ações destrutivas.
Este repositório contém:
stand/ — ambiente de laboratório (ambiente vulnerável) em Docker: SPIP + MariaDB.poc/ — ferramenta de verificação (scanner) em Python, que implementa a confirmação segura da vulnerabilidade (Safe PoC) sem ações destrutivas.O projeto destina-se à demonstração e análise da vulnerabilidade CVE-2023-27372 no SPIP anterior à versão 4.2.1. A verificação é realizada por meio da funcionalidade de recuperação de senha (endpoint spip.php?page=spip_pass) e confirmada pela execução de um comando seguro no ambiente de laboratório.
.
├── 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
O serviço estará disponível em:
http://127.0.0.1:8080/http://127.0.0.1:8080/spip.php?page=loginNavegue até poc/ e construa a imagem Docker do scanner:
cd ../poc
# Если в вашей среде бывают проблемы с DNS во время сборки, используйте:
docker build --network=host -t spip-poc-scanner .
Se não houver problemas de DNS — use o comando normal:
docker build -t spip-poc-scanner .
Execução recomendada para o ambiente 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
Após a execução, será gerado o results.json (exemplo de estrutura):
[
{
"ip": "http://127.0.0.1:8080",
"vuln": true
}
]
Se a sua implementação do PoC confirma a execução por meio da criação de um arquivo (por exemplo, /tmp/pwned.txt), você pode verificar isso dentro do container web.
Opção sem nome fixo de container:
cd ../stand
WEB_CID="$(docker compose ps -q web)"
docker exec "$WEB_CID" ls -l /tmp/pwned.txt
Se o arquivo existir, isso confirma a possibilidade de execução de comandos no ambiente de laboratório.
pip)spip.php?page=spip_passTemporary failure in name resolution com docker buildUse a construção com rede do host:
docker build --network=host -t spip-poc-scanner .
Pare e remova os volumes:
cd stand
docker compose down -v
docker compose up -d
O projeto foi criado exclusivamente para fins educacionais e para testes legais no seu próprio ambiente de laboratório. O autor não se responsabiliza por qualquer uso não autorizado.
---::contentReference[oaicite:0]{index=0}