Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2023-25157 — Labo GeoServer/PostGIS local reproduisant l'injection SQL OGC Filter (CVE-2023-25157/25158) avec des modes de test A/B vulnérable, corrigé et atténué. | Kitploit
Outils/GitHubGitHub/ivanesk315/cve-2023-25157
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et ÉducationSécurité des Bases de DonnéesLabs et Pratique
GitHubivanesk315/cve-2023-25157

CVE-2023-25157

Labo GeoServer/PostGIS local reproduisant l'injection SQL OGC Filter (CVE-2023-25157/25158) avec des modes de test A/B vulnérable, corrigé et atténué.

il y a 12h 21mPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Lab CVE-2023-25157 et CVE-2023-25158

Ce lab utilise GeoServer/PostGIS pour étudier l'injection SQL via OGC Filter dans un environnement local, avec une séparation claire entre le mode opérateur/setup et le mode attaquant.

  • CVE-2023-25157 : surface du produit GeoServer, les requêtes WFS/WMS passent par l'encodage de filtre JDBC.
  • CVE-2023-25158 : cause racine dans la bibliothèque GeoTools JDBC, intégrée par GeoServer pour transformer les filtres OGC en SQL.

GeoServer 2.22.0 intègre GeoTools vulnérable. GeoServer 2.22.2 intègre GeoTools corrigé. Le lab conserve le même schéma/requête pour un test A/B des versions, de la mitigation et de la frontière de privilèges.

Architecture

ModeSurfaceObjectif
Setup/operator RESTconteneur interne cve-operatorConfiguration REST, validation et revue des logs backend
Passerelle unique127.0.0.1:8889Un seul port pour l'UI opérateur et les routes OWS
Operator Web UI127.0.0.1:8889/geoserver/web/UI GeoServer pour l'opérateur ; avec proxy Basic Auth
Attacker vulnerable127.0.0.1:8889/vuln/geoserver/owsWFS/OWS vulnérable, erreurs DB visibles dans la réponse
Attacker patched127.0.0.1:8889/patched/geoserver/owsGeoServer 2.22.2 / GeoTools 28.2
Attacker realistic127.0.0.1:8889/realistic/geoserver/owsWFS/OWS vulnérable mais la passerelle supprime les détails d'erreur
Mitigation function127.0.0.1:8889/mit-functions/geoserver/owsGeoServer 2.22.0, encode functions=false
Mitigation FeatureId127.0.0.1:8889/mit-featureid/geoserver/owsGeoServer 2.22.0, preparedStatements=true

PostgreSQL/PostGIS ne publie aucun port vers l'hôte. GeoServer ne publie pas directement le port 8080 vers l'hôte ; l'hôte ne voit que cve-gateway sur 127.0.0.1:8889. Le conteneur cve-attacker est uniquement sur attacker-net ; il n'a aucune route vers PostgreSQL ni vers le service interne GeoServer. La configuration REST passe par le conteneur interne cve-operator sur geoserver-net.

Web UI opérateur

Ouvrir dans le navigateur :

root@kitploit:~
http://127.0.0.1:8889/geoserver/web/

Connexion à 2 niveaux :

  1. Proxy opérateur Basic Auth : operator / operator_lab
  2. UI GeoServer : admin / geoserver

Tout passe par la même passerelle 8889, pas besoin de mémoriser plusieurs ports. Burp peut conserver le proxy par défaut 127.0.0.1:8080.

Lancer le lab

root@kitploit:~
.\lab.ps1 reset all
.\lab.ps1 validate
powershell -ExecutionPolicy Bypass -File .\verify-lab.ps1
powershell -ExecutionPolicy Bypass -File .\negative-controls.ps1
powershell -ExecutionPolicy Bypass -File .\attack-chain.ps1

Commandes de gestion :

root@kitploit:~
.\lab.ps1 start vulnerable
.\lab.ps1 start patched
.\lab.ps1 start mitigated
.\lab.ps1 start worstcase
.\lab.ps1 reset all
.\lab.ps1 stop
.\lab.ps1 status

Données et rôles

Tables seed :

  • cities : clé primaire entière, colonne name de type text, utilisée pour strStartsWith/strEndsWith.
  • sensors_text : clé primaire text, utilisée pour l'injection FeatureId.
  • sensors_int : clé primaire entière, contrôle négatif pour FeatureId.
  • events : couche de recherche JSONB.
  • internal_assets : non publiée, contient LAB-CANARY-<UUID> à chaque reset.
  • local_points : contrôle négatif shapefile non-JDBC.

Rôles :

  • geoserver_readonly : CONNECT, USAGE sur le schéma, SELECT uniquement sur les tables publiées.
  • geoserver_impact : SELECT supplémentaire sur internal_assets pour illustrer un utilisateur DB applicatif aux droits trop larges.
  • geoserver_worstcase : profil séparé, avec pg_read_server_files pour lire le fichier canary factice /lab/flag.txt.

Déroulement de l'attack-chain

attack-chain.ps1 effectue :

  1. Recon WFS GetCapabilities.
  2. Énumération du schéma DescribeFeatureType.
  3. Requêtes baseline et négatives.
  4. Oracle booléen TRUE/FALSE sur le proxy realistic.
  5. Confirmation de CVE-2023-25157 avec vulnerable, patched et encode functions=false.
  6. Confirmation de CVE-2023-25158 avec vulnerable, patched et preparedStatements=true.
  7. Contrôles négatifs : PK entière et shapefile non-JDBC.
  8. Fuite de l'utilisateur DB et découverte de table cachée via la branche impact.
  9. Démonstration que le least-privilege bloque internal_assets, que la branche impact fuit le canary, et que patched/realistic ne divulguent pas le canary.

Les preuves sont enregistrées dans evidence/attack-chain-*. Le dossier ne conserve que les preuves de la dernière exécution réussie pour éviter l'encombrement.

Profil worst-case

Ce profil ne fait pas partie du scénario principal :

root@kitploit:~
.\lab.ps1 start worstcase
powershell -ExecutionPolicy Bypass -File .\worstcase-demo.ps1

Il ne lit que le fichier canary factice /lab/flag.txt, ne lit pas /etc/passwd, ne dump aucun hash, ne casse aucun mot de passe.

Sources officielles

  • Avis GeoServer : https://github.com/geoserver/geoserver/security/advisories/GHSA-7g5f-wrx8-5ccf
  • Avis GeoTools : https://github.com/geotools/geotools/security/advisories/GHSA-99c3-qc2q-p94m
  • Déclaration GeoServer : https://geoserver.org/vulnerability/2023/02/20/ogc-filter-injection.html
  • NVD CVE-2023-25157 : https://nvd.nist.gov/vuln/detail/CVE-2023-25157
  • NVD CVE-2023-25158 : https://nvd.nist.gov/vuln/detail/CVE-2023-25158
Télécharger l’outil