
Sicherer PoC-Scanner und Docker-Lab für CVE-2023-27372, eine RCE in SPIP CMS vor 4.2.1. Überprüft die Schwachstelle über den Passwort-Wiederherstellungs-Endpunkt ohne zerstörerische Aktionen.
Dieses Repository enthält:
stand/ – Laboraufbau (verwundbare Umgebung) auf Docker: SPIP + MariaDB.poc/ – Python-basiertes Überprüfungswerkzeug (Scanner), das eine sichere Bestätigung der Schwachstelle (Safe PoC) ohne destruktive Aktionen implementiert.Das Projekt dient der Demonstration und Analyse der Schwachstelle CVE-2023-27372 in SPIP vor 4.2.1. Die Überprüfung erfolgt über die Passwort-Wiederherstellungsfunktion (Endpunkt spip.php?page=spip_pass) und wird durch die Ausführung eines sicheren Befehls auf der Seite des Aufbaus bestätigt.
.
├── stand/ # Verwundbarer Aufbau (SPIP + MariaDB) auf Docker Compose
│ ├── docker-compose.yml
│ └── ... (Dockerfile/Skripte des Aufbaus, persist volumes usw.)
└── poc/ # Safe PoC Scanner (Python)
├── Dockerfile
├── README.md # (optional) lokale PoC-Dokumentation
└── src/
├── scanner.py
├── utils.py
└── pyproject.toml
cd stand
docker compose up -d
docker compose ps
Der Dienst ist erreichbar unter:
http://127.0.0.1:8080/http://127.0.0.1:8080/spip.php?page=loginWechseln Sie in poc/ und erstellen Sie das Docker-Image des Scanners:
cd ../poc
# Falls es in Ihrer Umgebung beim Bau Probleme mit DNS gibt, verwenden Sie:
docker build --network=host -t spip-poc-scanner .
Ohne DNS-Probleme reicht der normale Befehl:
docker build -t spip-poc-scanner .
Empfohlener Start für den lokalen Aufbau:
docker run --rm --network="host" \
-v "$(pwd)":/app/out \
spip-poc-scanner \
-i http://127.0.0.1:8080 \
-o /app/out/results.json
Nach der Ausführung erscheint results.json (Beispielstruktur):
[
{
"ip": "http://127.0.0.1:8080",
"vuln": true
}
]
Falls Ihre PoC-Implementierung die Ausführung durch das Erstellen einer Datei (z. B. /tmp/pwned.txt) bestätigt, können Sie dies innerhalb des Web-Containers überprüfen.
Variante ohne festen Containernamen:
cd ../stand
WEB_CID="$(docker compose ps -q web)"
docker exec "$WEB_CID" ls -l /tmp/pwned.txt
Wenn die Datei existiert, bestätigt dies die Möglichkeit der Befehlsausführung im Aufbau.
pip installiert werden)spip.php?page=spip_passTemporary failure in name resolution bei docker buildVerwenden Sie den Bau mit Host-Netzwerk:
docker build --network=host -t spip-poc-scanner .
Stoppen und Volumes löschen:
cd stand
docker compose down -v
docker compose up -d
Das Projekt wurde ausschließlich zu Bildungszwecken und für legale Tests in der eigenen Laborumgebung erstellt. Der Autor übernimmt keine Verantwortung für unbefugte Nutzung.