
Ambiente di laboratorio vulnerabile (Vulnerable Lab) e report dettagliato di analisi e sfruttamento della vulnerabilità SQL Injection (Error-based) in GeoServer (CVE-2023-25157) e nella libreria GeoTools (CVE-2023-25158).
Consulta il documento di analisi completo, con immagini PoC che illustrano ogni livello, nel report ufficiale:
(Il report include: il meccanismo dell'errore a livello di CQL Parser e SQL Translator, la spiegazione del formato OGC XML Filter, l'analisi dettagliata dei 4 vettori di attacco, i payload, le query SQL effettive eseguite sul database e le raccomandazioni di remediation.)
In questo lab sono stati verificati e analizzati in dettaglio 4 vettori di attacco reali in REPORT.md:
strStartsWith): sfruttamento tramite la funzione di controllo del prefisso della stringa in CQL_FILTER (HTTP GET).strEndsWith): sfruttamento tramite la funzione di controllo del suffisso della stringa in CQL_FILTER (HTTP GET).PropertyIsLike): sfruttamento tramite il tag del filtro standard OGC XML Filter manipolando il carattere di escape escape (HTTP POST) — vettore più pericoloso, attivo su tutte le configurazioni predefinite.FeatureId): sfruttamento tramite il parametro di filtro per chiave primaria di tipo String quando preparedStatements = false.Nella directory principale del progetto, apri il terminale ed esegui il comando:
docker compose up -d
Il sistema avvierà 2 container:
vulhub con le tabelle example e example_str).Controlla i log di GeoServer per assicurarti che il servizio sia stato avviato completamente:
docker compose logs -f geoserver
Quando appare il messaggio CONFIGURATION COMPLETE, puoi accedere a GeoServer su:
http://localhost:8080/geoserver/web/admin / geoserverPer arrestare i container e liberare le risorse:
# Spegne il lab (mantiene i dati del database)
docker compose down
# Spegne il lab ed elimina tutti i dati dei volumi
docker compose down -v
├── REPORT.md # Report dettagliato di analisi tecnica e PoC
├── docker-compose.yml # Configurazione dell'ambiente lab GeoServer + PostgreSQL
├── init.sql # Script di inizializzazione del database e dei dati di esempio per il lab
├── startup.sh # Script di configurazione automatica di GeoServer all'avvio del container
└── img/ # Directory contenente le immagini dimostrative del PoC
| Proprietà | Dettagli |
|---|
| CVE ID | CVE-2023-25157 (GeoServer) & CVE-2023-25158 (GeoTools) |
| Tipo di vulnerabilità | Error-based SQL Injection |
| Gravità | Critical — CVSS v3.1: 9.8 |
| Prodotti interessati | GeoServer < 2.23.1, < 2.22.3, < 2.21.4 / GeoTools < 29.2, < 28.4, < 27.5 |
| Protocollo di sfruttamento | OGC Web Feature Service (WFS) v1.0.0 / v2.0.0 |
| Autenticazione richiesta | Non richiesta (quando il servizio WFS è configurato con AccessConstraints: NONE) |