
Laboratoire vulnérable basé sur Docker et rapport PoC détaillé pour l'injection SQL CVE-2023-25157/25158 dans GeoServer & GeoTools, avec 4 vecteurs d'attaque vérifiés et analyse.
Environnement de pratique (Vulnerable Lab) et rapport d'analyse et d'exploitation détaillé de la vulnérabilité SQL Injection (Error-based) dans GeoServer (CVE-2023-25157) et la bibliothèque GeoTools (CVE-2023-25158).
Consultez le document d'analyse complet accompagné des captures PoC illustrant chaque couche dans le rapport officiel :
(Le rapport comprend : le principe de déclenchement de l'erreur au niveau du CQL Parser et du SQL Translator, l'explication du format OGC XML Filter, l'analyse détaillée des 4 vecteurs d'attaque, les payloads, les requêtes SQL réellement exécutées dans la base de données et les recommandations de remédiation).
| Attribut | Détails |
|---|---|
| CVE ID | CVE-2023-25157 (GeoServer) & CVE-2023-25158 (GeoTools) |
| Type de vulnérabilité | Error-based SQL Injection |
| Sévérité | Critique — CVSS v3.1 : 9.8 |
| Produits affectés | GeoServer < 2.23.1, < 2.22.3, < 2.21.4 / GeoTools < 29.2, < 28.4, < 27.5 |
| Protocole d'exploitation | OGC Web Feature Service (WFS) v1.0.0 / v2.0.0 |
| Authentification requise | Non requise (lorsque le service WFS est configuré avec AccessConstraints: NONE) |
Dans ce lab, 4 vecteurs d'attaque réels ont été vérifiés et analysés en détail dans REPORT.md :
strStartsWith) : Exploitation via la fonction de vérification du préfixe d'une chaîne dans CQL_FILTER (HTTP GET).strEndsWith) : Exploitation via la fonction de vérification du suffixe d'une chaîne dans CQL_FILTER (HTTP GET).PropertyIsLike) : Exploitation via la balise de filtre standard OGC XML Filter en manipulant le caractère d'échappement escape (HTTP POST) — Vecteur le plus dangereux fonctionnant sur toutes les configurations par défaut.FeatureId) : Exploitation via le paramètre de filtre sur une clé primaire de type String lorsque preparedStatements = false.À la racine du projet, ouvrez un Terminal et exécutez la commande :
docker compose up -d
Le système démarrera 2 conteneurs :
vulhub avec les tables example et example_str).Consultez les logs de GeoServer pour vous assurer que le service a démarré complètement :
docker compose logs -f geoserver
Lorsque le message CONFIGURATION COMPLETE apparaît, vous pouvez accéder à GeoServer à l'adresse :
http://localhost:8080/geoserver/web/admin / geoserverPour arrêter les conteneurs et libérer les ressources :
# Tắt lab (giữ lại dữ liệu database)
docker compose down
# Tắt lab và xóa sạch toàn bộ dữ liệu volume
docker compose down -v
├── REPORT.md # Báo cáo phân tích kỹ thuật & PoC chi tiết
├── docker-compose.yml # Cấu hình khởi tạo môi trường lab GeoServer + PostgreSQL
├── init.sql # Script khởi tạo database và dữ liệu mẫu cho lab
├── startup.sh # Script cấu hình tự động GeoServer khi khởi chạy container
└── img/ # Thư mục chứa hình ảnh minh chứng PoC