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 — Es handelt sich um eine Schwachstelle bei der Eingabebereinigung, die durch eine Kodierungsinkompatibilität verursacht wird und es präparierten Eingaben ermöglicht, Filter zu umgehen. Wenn ein Server verwundbar ist, kann ein Angreifer schädliches SQL einschleusen, das das Backend ausführt. | Kitploit
Tools/GitHubGitHub/aninfosec/cve-2025-1094
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-EntwicklungDatenbanksicherheitLabs & Praxis
GitHubaninfosec/cve-2025-1094

CVE-2025-1094

Repository anzeigen
12vor 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 →

Über

Es handelt sich um eine Schwachstelle bei der Eingabebereinigung, die durch eine Kodierungsinkompatibilität verursacht wird und es präparierten Eingaben ermöglicht, Filter zu umgehen. Wenn ein Server verwundbar ist, kann ein Angreifer schädliches SQL einschleusen, das das Backend ausführt.

Teilen

#Ich habe diesen Exploit unter Bezugnahme auf den PoC geschrieben, der unter CVE-2025-1094 verfügbar ist.

CVE‑2025‑1094 | Schwachstelle bei der Eingabebereinigung in PostgreSQL

Überblick

CVE‑2025‑1094 ist eine Schwachstelle bei der Eingabebereinigung in den Escape-Funktionen von PostgreSQLs libpq und dem interaktiven Tool psql. Sie beruht auf der fehlerhaften Verarbeitung von Multibyte-Kodierungen, wenn die Client-Kodierung auf BIG5 gesetzt ist. Unter bestimmten Bedingungen kann dies zu einer fehlerhaften Behandlung von Escape-Zeichen führen, sodass Angreifer die vorgesehenen Query-Grenzen umgehen können.

Diese Schwachstelle wurde von Rapid7 während der Analyse von CVE‑2024‑12356 entdeckt, einem separaten Problem in BeyondTrust-Appliances. Das PostgreSQL-Verhalten wurde im Rahmen einer breiteren verketteten Schwachstelle ausgenutzt, um das Backend-Verhalten weiter zu beeinflussen.

Funktionsweise

Wenn ein Webserver oder eine Anwendung Benutzereingaben direkt an SQL-Abfragen weitergibt, die über psql ausgeführt werden, und auf gesetzt ist, kann speziell präparierte Eingabe eine SQL-Anweisung vorzeitig beenden und bösartiges SQL anhängen.

client_encoding
BIG5

Dies ermöglicht zusätzliche Operationen wie das Lesen lokaler Dateien (z. B. /etc/passwd) über PostgreSQL-Funktionen wie lo_export, pg_read_file oder ähnliche Funktionen.

Dabei handelt es sich standardmäßig nicht um eine Schwachstelle zur Remote-Code-Ausführung (RCE) in PostgreSQL. Vielmehr handelt es sich um einen Missbrauch der PostgreSQL-Client-APIs, die bei unzureichender Filterung oder Maskierung ausgenutzt werden können, um vertrauliche Dateiinhalte preiszugeben oder potenziell gefährliches SQL auszuführen.

Auswirkungen

  • Ermöglicht Dateilesezugriff auf dem PostgreSQL-Server, wenn dieser unsicher konfiguriert ist.
  • Erlaubt Angreifern mit gültigen Anmeldedaten, COPY TO, pg_read_file oder lo_export in Kombination mit SQL-Injection in Client-Anwendungen auszunutzen.
  • Exploits sind nur wirksam, wenn die Client-Kodierung BIG5 ist und die Eingabe nicht ordnungsgemäß bereinigt wird.

Voraussetzungen für die Ausnutzung

  • Der Angreifer verfügt über gültige PostgreSQL-Anmeldedaten (authentifizierter Kontext) oder Zugriff auf einen Webserver, der Eingaben direkt an den PostgreSQL-Server sendet.
  • Das Backend-SQL ist PostgreSQL und verwendet eine verwundbare Version (vor den gepatchten Versionen im Juni 2025).
  • Die Anwendung übergibt unbereinigte Eingaben direkt an SQL.
  • Der PostgreSQL-Client ist mit client_encoding=BIG5 konfiguriert.

Exploit-Demonstration

root@kitploit:~
import psycopg2

conn = psycopg2.connect(
    host="127.0.0.1",
    dbname="test",
    user="test",
    password="Test"
)
conn.set_client_encoding("BIG5")
cursor = conn.cursor()

# Payload to read /etc/passwd into a server-accessible file
sql = \
"""
DO $$ DECLARE f text; BEGIN f := pg_read_file('/etc/passwd', 0, 1000);
RAISE NOTICE '%%', f; END $$;
"""

cursor.execute(sql)
conn.commit()

##✅ Was macht dieser Exploit.py:

Setzt PGCLIENTENCODING=BIG5 in der Umgebung (Auslösebedingung).

Erstellt ein SQL-Injection-Payload, um aus einer Query auszubrechen und einen neuen COPY-TO-PROGRAM-Befehl einzufügen.

Sendet das Payload über eine GET-Anfrage an den verwundbaren Webserver (/search?q=...).

Wenn das Backend psql verwendet und Eingaben unbereinigt sind, führt COPY TO PROGRAM den Befehl aus und schreibt das Ergebnis oder öffnet eine Shell.

⚠️ Die Reverse Shell wird nur erfolgreich sein, wenn der Server:

root@kitploit:~
SQL mithilfe von psql ausführt (nicht mit parametrisierten DB-Treibern)

COPY TO PROGRAM erlaubt (erfordert Superuser)

ausgehende Verbindungsmöglichkeiten zum Angreifer hat

#Das Python-Skript sendet ein speziell präpariertes Payload an einen verwundbaren Webserver, der Eingaben direkt an einen PostgreSQL-psql-Prozess mit BIG5-Kodierung weitergibt: Schritte zur Verwendung:

Starte einen Listener im Terminal:

nc -lvnp 4444

Bearbeite das Exploit-Skript:

Setze TARGET_URL auf die IP oder Domain des Zielservers. Bestätige, dass der ENDPOINT der Route entspricht (z. B. /search). Passe REVERSE_IP und REVERSE_PORT an deine Attack-Box an.

Führe das Skript in einem anderen Terminal aus:

python3 exploit.py

Ergebnis: Bei Erfolg erhältst du eine Verbindung auf deinem Listener. Wenn nicht, versuche stattdessen, Dateien (z. B. /etc/passwd) mithilfe von pg_read_file-Payloads zu lesen.

Laborumgebung

Um dies zu testen:

  • PostgreSQL 14.x (oder frühere verwundbare Versionen).
  • Initialisiert mit EUC_TW oder einer ähnlichen Kodierung.
  • Die Anwendungsschicht (z. B. Flask) interagiert über psql oder nicht maskiertes dynamisches SQL mit PostgreSQL.
  • Der PostgreSQL-Benutzer muss Zugriff auf Funktionen wie pg_read_file oder lo_export haben.

Gegenmaßnahmen

  • Aktualisiere auf gepatchte PostgreSQL-Versionen (≥ 17.3, 16.7, 15.11, 14.16, 13.19).
  • Vermeide client_encoding=BIG5, sofern nicht ausdrücklich erforderlich.
  • Übergib niemals rohe Benutzereingaben an SQL-Ausführungskontexte.
  • Verwende Prepared Statements und Bibliotheken zur Eingabevalidierung.

Referenzen

  • Rapid7-Blog: Technische Analyse
  • PostgreSQL-Sicherheitshinweis: Security-Release Juni 2025
  • CVE-Details: CVE-2025-1094
Tool herunterladen