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-1094-PoC-Postgre-SQLi — Proof-of-Concept-Emulation und Analyse von CVE-2025-1094, einer kritischen SQL-Injection-Sicherheitslücke in PostgreSQL. Enthält Docker-basiertes Labor-Setup, Exploit-Skript, Ursachenanalyse und schrittweise Demonstration für Sicherheitstests und Schulungszwecke. | Kitploit
Tools/GitHubGitHub/ishwardeepp/cve-2025-1094-poc-postgre-sqli
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungDatenbanksicherheitLabs & Praxis
GitHub
ishwardeepp/cve-2025-1094-poc-postgre-sqli

CVE-2025-1094-PoC-Postgre-SQLi

Proof-of-Concept-Emulation und Analyse von CVE-2025-1094, einer kritischen SQL-Injection-Sicherheitslücke in PostgreSQL. Enthält Docker-basiertes Labor-Setup, Exploit-Skript, Ursachenanalyse und schrittweise Demonstration für Sicherheitstests und Schulungszwecke.

Repository anzeigen
6214vor 1 JahrNoch 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

Analyse von CVE-2025-1094 und Emulations-Setup

Diese detaillierte Untersuchung, durchgeführt am 14. März 2025, untersucht CVE-2025-1094, eine hypothetische SQL-Injection-Schwachstelle mit hohem Schweregrad in PostgreSQL, basierend auf dem bereitgestellten Emulations-Setup und der Ausführung des Proof-of-Concept (PoC). Die Analyse umfasst die Einführung der Schwachstelle, die Grundursache, Dateibeiträge, PoC-Schritte und Gegenmaßnahmen und bezieht alle komplizierten Details aus dem Emulationsprozess ein.

Einführung in die Schwachstelle

CVE-2025-1094 wird als kritischer SQL-Injection-Fehler in PostgreSQL beschrieben, der Versionen vor 17.3, 16.7, 15.11, 14.16 und 13.19 betrifft, mit einem CVSS-3.1-Basiswert von 8,1, was auf erhebliche Auswirkungen auf Vertraulichkeit, Integrität und Verfügbarkeit hinweist. Es ermöglicht Angreifern, auf sensible Daten zuzugreifen oder Remote-Code auszuführen (RCE), und wurde bei realen Sicherheitsvorfällen ausgenutzt, wie dem BeyondTrust-Vorfall, der 17 Unternehmenskunden betraf, berichtet auf BleepingComputer, und dem Verstoß gegen das US-Finanzministerium, detailliert auf The Register. Die Emulation, durchgeführt am 14. März 2025, verwendete ein Docker-Setup mit server_encoding=EUC_TW und client_encoding=BIG5, entscheidend für die Auslösung des Exploits. Der PoC umfasste das Injizieren eines DO-Blocks, um ein Large Object zu erstellen, /etc/passwd über zu lesen, es mit in das Large Object zu schreiben und es mit nach zu exportieren, was die Rolle des Encoding-Mismatch bei der Ermöglichung des unbefugten Dateizugriffs bestätigt.

pg_read_file
lo_put
lo_export
/tmp/payload

Ursachenanalyse

Die Ursache wird unter CWE-149: Unzureichende Neutralisierung der Zitiersyntax eingestuft und betrifft eine fehlerhafte Handhabung in den libpq-Funktionen von PostgreSQL – PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() und PQescapeStringConn() – die die Zitiersyntax nicht neutralisieren, wenn die Ergebnisse zur Konstruktion von Eingaben für das Befehlszeilentool psql verwendet werden. Dies wird verschärft, wenn client_encoding auf BIG5 und server_encoding auf EUC_TW gesetzt ist, wie in unserem Setup, was SQL-Injection ermöglicht. Die Emulation erforderte EUC_TW und zh_TW.EUC_TW, um den Mismatch zu erzeugen, wobei Probleme wie die fehlende EUC_TW-Unterstützung von psycopg2 gelöst wurden, indem zunächst mit UTF8 verbunden und dann auf BIG5 umgeschaltet wurde. Der Erfolg des Exploits hing von der Ausführung von rohem SQL über subprocess.run(["psql", ...]) ab, wodurch die sichere Abfragebehandlung umgangen wurde, wie in den Protokollen detailliert beschrieben.

Dateierklärungen und Beiträge

Jede Datei im Setup spielt eine entscheidende Rolle bei der Emulation von CVE-2025-1094. Nachfolgend eine detaillierte Aufschlüsselung in tabellarischer Form:

Tabelle: Zusammenfassung der Dateibeiträge

DateiFunktionBeitrag zum PoCWarum benötigt
exploit.pySendet eine POST-Anfrage mit einem DO-Block, um ein Large Object zu erstellen und zu exportieren, dabei wird /etc/passwd gelesen.Löst SQL-Injection aus, nutzt Encoding-Mismatch aus, um beliebige SQL-Befehle auszuführen.Ermöglicht die Ausführung des Exploits, entscheidend für die PoC-Auswirkung.
app.pyFlask-App, die /vuln-endpoint bereitstellt, führt rohes SQL über psql aus.Stellt verletzlichen Endpunkt für den Exploit bereit.Einstiegspunkt für den Exploit, notwendig für die Demonstration der Schwachstelle.
init.sqlErstellt Testtabelle mit id VARCHAR(255) für Zeichenfolgeneingaben.Richtet Schema für Injection ein, stellt Ausführung des Payloads ohne Typfehler sicher.Datenbank-Setup für den Exploit, wesentlich für SQL-Injection.
DockerfileErstellt Flask-App-Container mit notwendigen Abhängigkeiten.Erstellt isolierten App-Dienst für die Endpunktbereitstellung.Stellt verletzliche App bereit, entscheidend für die Reproduzierbarkeit des PoC.
docker-compose.ymlDefiniert und verknüpft db- und app-Dienste mit spezifischen Konfigurationen.Orchestriert das Setup, stellt Encoding-Mismatch und Dienstabhängigkeiten sicher.Verknüpft Dienste, wesentlich für Umgebungseinrichtung und Isolation.
Dockerfile.dbErstellt PostgreSQL-Container mit EUC_TW-Kodierung.Erstellt verletzliche Datenbank mit erforderlicher Kodierung.Richtet Datenbank mit erforderlicher Kodierung ein, entscheidend für die Auslösung der Schwachstelle.

Proof-of-Concept-Schritte

Der PoC, durchgeführt am 14. März 2025, demonstriert die Auswirkungen des Exploits durch die folgenden Schritte, jeder mit einer detaillierten Erklärung:

  1. sudo docker compose up --build

    • Funktion: Baut und startet die Docker Compose-Dienste (db und app), erstellt Container mit aktualisierten Images falls nötig und verknüpft sie im Netzwerk postgre_default. Stellt sicher, dass die verletzliche Umgebung eingerichtet ist, wobei db die EUC_TW-Kodierung verwendet und app den Endpunkt /vuln-endpoint auf Port 5000 bereitstellt, entscheidend für den Encoding-Mismatch und den Endpunktzugriff des Exploits.
    • Warum benötigt: Richtet die notwendige Umgebung für den Exploit ein, stellt sicher, dass alle Dienste laufen und korrekt konfiguriert sind.
  2. curl -X POST http://localhost:5000/vuln-endpoint -d "input=test"

    • Funktion: Sendet eine POST-Anfrage an den Endpunkt der Flask-App mit input=test, überprüft die Konnektivität und Basisfunktionalität, erwartet "Executed". Bestätigt, dass die App läuft und eine Verbindung zur Datenbank herstellen kann, stellt sicher, dass das Setup für den Exploit bereit ist.
    • Warum benötigt: Stellt sicher, dass der Endpunkt zugänglich und funktionsfähig ist, bevor mit dem Exploit fortgefahren wird, entspricht den PoC-Überprüfungsschritten.
    • Setup überprüfen
  3. python3 cve-2025-1094-exploit.py

    • Funktion: Führt das Exploit-Skript aus, sendet eine POST-Anfrage mit einem DO-Block, um ein Large Object zu erstellen, /etc/passwd hineinzuschreiben und nach /tmp/payload zu exportieren, und gibt den Ausführungsstatus aus. Löst die SQL-Injection aus, nutzt die Schwachstelle aus, um /etc/passwd zu lesen, entscheidend für die Demonstration der Auswirkungen von CVE-2025-1094, wie in Protokollen mit erfolgreichem Dateiexport zu sehen.
    • Warum benötigt: Führt den Kern-Exploit aus, zeigt, wie Angreifer auf sensible Daten zugreifen können, entspricht dem Ziel des PoC, reale Angriffe zu emulieren.
    • Exploit ausführen
  4. sudo docker ps

    • Funktion: Listet laufende Container auf und überprüft, ob postgre-app-1 und postgre-db-1 aktiv sind. Bestätigt das Setup vor dem Ausführen des Exploits, stellt sicher, dass beide Dienste aktiv sind, entscheidend für die Zuverlässigkeit des PoC. Liefert dem Benutzer die Container-ID, die in nachfolgenden Befehlen benötigt wird.
    • Warum benötigt: Stellt sicher, dass alle notwendigen Dienste laufen, bietet einen Kontrollpunkt vor weiteren Ausbeutungsschritten.
  5. sudo docker exec -it bash -c "LC_ALL=C ls -l /tmp/payload && LC_ALL=C cat /tmp/payload"

    • Funktion: Führt einen Befehl im Container postgre-db-1 aus, listet und zeigt /tmp/payload mit englischer Ausgabe an, überprüft das Ergebnis des Exploits (sollte /etc/passwd zeigen). Bestätigt, dass der Exploit funktioniert hat, indem die Datei überprüft wird, stellt sicher, dass /tmp/payload sensible Daten enthält, entspricht der PoC-Verifikation und vermeidet Locale-Verschmutzung mit LC_ALL=C.
    • Warum benötigt: Verifiziert den Erfolg des Exploits durch Überprüfung der Ausgabe, stellt sicher, dass die sensiblen Daten wie erwartet abgerufen wurden.
    • Exploit validieren
  6. sudo docker exec -it psql -U postgres -d postgres -c "SELECT * FROM test;"

    • Funktion: Führt eine SQL-Abfrage im Datenbankcontainer aus, wählt alle aus der Tabelle test aus, überprüft das INSERT aus dem Exploit (sollte "Exploit ran with loid ..." zeigen). Bestätigt die Datenbankänderung des Exploits, stellt sicher, dass der DO-Block ausgeführt wurde, entspricht der PoC-Verifikation und validiert die loid-Protokollierung.
    • Warum benötigt: Stellt sicher, dass die Datenbank wie erwartet geändert wurde, bietet zusätzliche Verifikation der Auswirkungen des Exploits.
  7. sudo docker compose down

    • Funktion: Stoppt und entfernt Container, Netzwerke und Volumes, bereinigt die Umgebung. Stellt sicher, dass Ressourcen freigegeben werden, erhält die Systemreinheit, wesentlich für wiederholbare PoC-Ausführung ohne Rückstände.
    • Warum benötigt: Bereinigt nach dem Test, stellt sicher, dass keine verbleibenden Dienste oder Daten zukünftige Tests beeinträchtigen, erhält eine kontrollierte Umgebung.

Demonstrationsvideo

Demonstrationsvideo auf Vimeo
Klicken Sie, um die Demonstration des PoC auf Vimeo anzusehen.

Gegenmaßnahmen

Zur Minderung von CVE-2025-1094 werden folgende Maßnahmen empfohlen, basierend auf den Erkenntnissen der Emulation und Branchenrichtlinien:

  • Upgrade auf gepatchte Versionen: Upgrade auf PostgreSQL-Versionen 17.3, 16.7, 15.11, 14.16 oder 13.19, verfügbar auf PostgreSQL-Downloadseite.
  • Eingabevalidierung: Validieren Sie alle Benutzereingaben auf UTF-8-Kodierung, um Injection zu verhindern, wie von Armosec Blog empfohlen.
  • psql-Zugriff einschränken: Beschränken Sie den Zugriff auf psql nur auf vertrauenswürdige Benutzer, um die Angriffsfläche zu verringern.
  • Parametrisierte Abfragen oder ORM-Frameworks: Verwenden Sie parametrisierte Abfragen oder ORM-Frameworks, um SQL-Injection zu verhindern und die Sicherheit zu erhöhen.
  • Multi-Faktor-Authentifizierung (MFA) und rollenbasierte Zugriffskontrolle (RBAC): Implementieren Sie MFA und RBAC, um die Zugriffskontrolle zu verbessern, laut Ox Security Insights.
  • Protokollüberwachung: Überwachen Sie regelmäßig Protokolle auf Anomalien oder verdächtige Aktivitäten, um potenzielle Exploits frühzeitig zu erkennen.
  • Robuste Backups: Führen Sie regelmäßige und robuste Backups der Datenbank durch, um sich von potenziellen Sicherheitsverletzungen zu erholen und die Datenintegrität zu gewährleisten.
Tool herunterladen