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-2026-52614 — Im Backend von Ruoyi v4.8.3 besteht eine SQL-Injection-Schwachstelle. | Kitploit
Tools/GitHubGitHub/chinesespeople/cve-2026-52614
Passwort-CrackingSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubchinesespeople/cve-2026-52614

CVE-2026-52614

Im Backend von Ruoyi v4.8.3 besteht eine SQL-Injection-Schwachstelle.

Repository anzeigen
111vor 1 MonatNoch 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-2026-52614 - RuoYi v4.8.3 filterKeyword SQL-Injection-Umgehung

Chinesisch | Englisch

Autorisierung erforderlich / Nur für autorisierte Tests
Dieses Repository ist ausschließlich für Sicherheitsforschung und autorisierte Tests bestimmt. Verwenden Sie es nicht gegen Systeme ohne ausdrückliche Genehmigung.
Dieses Repository dient ausschließlich der Sicherheitsforschung und autorisierten Tests. Verwenden Sie es nicht gegen nicht autorisierte Systeme.

Chinesische Erklärung

Schwachstellenübersicht

Die Schnittstelle /tool/gen/createTable im Code-Generierungsmodul von RuoYi v4.8.3 erlaubt Backend-Benutzern, SQL zum Erstellen von Tabellen zu übermitteln. Die Schnittstelle ruft SqlUtil.filterKeyword() auf, um eine Keyword-Blacklist zu filtern, aber in der Implementierung werden zunächst alle Leerzeichen aus der Eingabe entfernt, bevor Keywords, die nachgestellte Leerzeichen enthalten (z. B. select , insert , drop ), abgeglichen werden, sodass die entsprechenden Regeln nicht greifen.

Mithilfe einer CREATE TABLE ... AS SELECT ...-Anweisung (CTAS) kann ein SELECT ausgeführt werden, während gleichzeitig die Typüberprüfung von Druids MySqlCreateTableStatement bestanden wird. Ein Angreifer mit einer gültigen Backend-Sitzung kann so eine boolesche blinde SQL-Injection konstruieren, vertrauliche Informationen aus der Datenbank lesen und Datenbanktabellen erstellen.

Voraussetzungen

  • Das Ziel ist RuoYi v4.8.3.
  • Der Angreifer ist im Backend angemeldet und besitzt eine gültige JSESSIONID.
  • Das aktuelle Konto hat Zugriff auf die relevanten Schnittstellen des Code-Generierungsmoduls.
  • Die Datenbank und das aktuelle Datenbankkonto erlauben die Ausführung von CTAS-Tabellenerstellungsvorgängen.

Funktionsweise der Schwachstelle

Das Verifizierungsskript verwendet die folgende Logik, um den Passwort-Hash und Salt des admin-Benutzers aus der Tabelle sys_user zu extrahieren:

  1. Erstellen einer Zwischentabelle per CTAS, die die Felder login_name, password und salt kopiert.
  2. Für jedes zu testende Zeichen wird eine Testtabelle erstellt, und in die WHERE-Klausel wird eine SUBSTRING()-Bedingung eingefügt.
  3. Wenn die Bedingung wahr ist, gibt CTAS Daten zurück und die Testtabelle wird nicht automatisch in die Liste der Code-Generierungstabellen importiert.
  4. Wenn die Bedingung falsch ist, gibt CTAS null Zeilen zurück und die Testtabelle wird automatisch importiert und ist über /tool/gen/list abfragbar.
  5. Anhand des Vorhandenseins der Testtabelle in der Liste werden Passwort-Hash und Salt zeichenweise wiederhergestellt.

Systemanforderungen

  • Python 3.8+
  • Eine gültige und autorisierte RuoYi-Backend-Sitzung
  • Python-Abhängigkeiten: requests, urllib3

Abhängigkeiten installieren:

root@kitploit:~
python -m pip install requests urllib3

Verwendung

Öffnen Sie exp.py und ersetzen Sie die folgenden beiden Zeilen im Konfigurationsbereich am Anfang der Datei:

root@kitploit:~
TARGET = "http://127.0.0.1:8080"
COOKIE = "JSESSIONID=your_session_id"

Wobei:

  • TARGET: Ersetzen Sie dies durch die zu testende RuoYi-URL, z. B. http://127.0.0.1:8080.
  • COOKIE: Ersetzen Sie dies durch eine gültige JSESSIONID-Sitzung, die Sie nach dem Anmelden im Backend erhalten haben.

Nachdem Sie die Änderungen vorgenommen haben, führen Sie das Skript aus:

root@kitploit:~
python exp.py

Das Skript erstellt eine Zwischentabelle und viele boolesche Testtabellen in der Zieldatenbank. Verwenden Sie es nur in einer isolierten oder autorisierten Umgebung und lassen Sie die erstellten Tabellen nach dem Test vom Datenbankadministrator entfernen.

Verifizierungs-Screenshot

exp.png zeigt eine erfolgreiche Verifizierung in einer autorisierten lokalen Umgebung:

Successful verification

Abhilfemaßnahmen

  • Verwenden Sie keine String-Blacklists, um die SQL-Sicherheit zu beurteilen, und führen Sie benutzerbereitgestelltes SQL erst recht nicht direkt aus.
  • Korrigieren Sie die Normalisierungs- und Abgleichlogik in filterKeyword(), aber betrachten Sie sie nicht als einzige Sicherheitsmaßnahme.
  • Implementieren Sie strenge Zugriffskontrollen, Prüfungen und CSRF-Schutz für die Code-Generierungsschnittstellen.
  • Verbieten oder entfernen Sie die Möglichkeit zur willkürlichen SQL-Tabellenerstellung; falls geschäftlich erforderlich, konstruieren Sie feste Anweisungen aus strukturierten, validierten Parametern.
  • Verwenden Sie ein Datenbankkonto mit minimalen Berechtigungen, das keine sensiblen Tabellen lesen oder unnötige CTAS/DDL-Operationen ausführen kann.
  • Aktualisieren Sie auf eine offiziell gepatchte Version oder wenden Sie den Sicherheitspatch des Anbieters an.

Englisch

Zusammenfassung

Der Endpunkt /tool/gen/createTable im Code-Generierungsmodul von RuoYi v4.8.3 akzeptiert SQL zum Erstellen von Tabellen von authentifizierten Backend-Benutzern. Der Endpunkt ruft SqlUtil.filterKeyword() auf, um gefährliche SQL-Keywords zu blockieren. Die Implementierung entfernt jedoch alle Leerzeichen aus der Eingabe, bevor sie Blacklist-Einträge prüft, die nachgestellte Leerzeichen enthalten, wie z. B. select , insert und drop . Daher können diese Einträge die normalisierte Eingabe nicht erkennen.

Eine CREATE TABLE ... AS SELECT ...-Anweisung (CTAS) kann die Typüberprüfung von Druids MySqlCreateTableStatement bestehen, während sie dennoch ein SELECT ausführt. Ein Angreifer mit einer gültigen Backend-Sitzung kann dieses Verhalten für boolesche blinde SQL-Injection, Extraktion sensibler Daten und Tabellenerstellung nutzen.

Voraussetzungen

  • Das Ziel läuft mit RuoYi v4.8.3.
  • Der Tester verfügt über eine gültige authentifizierte Backend-JSESSIONID.
  • Das authentifizierte Konto hat Zugriff auf die Code-Generierungsendpunkte.
  • Die Datenbank und das konfigurierte Konto erlauben CTAS-Operationen.

Funktionsweise des PoC

Das Skript stellt den Passwort-Hash und Salt des admin aus sys_user mithilfe des folgenden Orakels wieder her:

  1. Erstellen einer Zwischentabelle mit den Feldern login_name, password und salt.
  2. Erstellen einer Testtabelle pro Kandidatenzeichen mit einer SUBSTRING()-Bedingung.
  3. Wenn die Bedingung wahr ist, gibt CTAS eine Zeile zurück und die Testtabelle wird nicht automatisch in die Liste der Generator-Tabellen importiert.
  4. Wenn die Bedingung falsch ist, gibt CTAS null Zeilen zurück und die Tabelle wird automatisch importiert, sodass sie über /tool/gen/list sichtbar ist.
  5. Nutzen Sie diesen Unterschied, um Passwort-Hash und Salt zeichenweise wiederherzustellen.

Anforderungen

  • Python 3.8+
  • Eine gültige, autorisierte RuoYi-Backend-Sitzung
  • Python-Pakete: requests, urllib3

Abhängigkeiten installieren:

root@kitploit:~
python -m pip install requests urllib3

Verwendung

Öffnen Sie exp.py und ersetzen Sie die folgenden beiden Zeilen im Konfigurationsbereich am Anfang der Datei:

root@kitploit:~
TARGET = "http://127.0.0.1:8080"
COOKIE = "JSESSIONID=your_session_id"

Wobei:

  • TARGET ist die zu testende RuoYi-Basis-URL, z. B. http://127.0.0.1:8080.
  • COOKIE ist eine gültige authentifizierte Backend-JSESSIONID-Sitzung.

Nach dem Ersetzen von URL und Sitzung führen Sie aus:

root@kitploit:~
python exp.py

Das Skript erstellt eine Zwischentabelle und viele boolesche Testtabellen in der Zieldatenbank. Verwenden Sie es nur in einer isolierten oder explizit autorisierten Umgebung und lassen Sie die erstellten Tabellen nach dem Test vom Datenbankadministrator entfernen.

Screenshot

exp.png zeigt eine erfolgreiche Verifizierung in einer autorisierten lokalen Umgebung:

Successful verification

Abhilfemaßnahmen

  • Verwenden Sie keine SQL-Keyword-Blacklists und führen Sie benutzerbereitgestelltes SQL nicht direkt aus.
  • Korrigieren Sie die Normalisierungs- und Abgleichlogik in filterKeyword(), aber betrachten Sie sie nicht als alleinige Sicherheitsmaßnahme.
  • Wenden Sie strenge Autorisierung, Prüfung und CSRF-Schutz auf Code-Generierungsendpunkte an.
  • Entfernen Sie die Möglichkeit zur willkürlichen SQL-Tabellenerstellung; falls erforderlich, konstruieren Sie feste Anweisungen aus strukturierten, validierten Parametern.
  • Verwenden Sie ein Datenbankkonto mit minimalen Berechtigungen, das keine sensiblen Tabellen lesen oder unnötige CTAS/DDL-Operationen ausführen kann.
  • Aktualisieren Sie auf eine offiziell gepatchte Version oder wenden Sie den Sicherheitspatch des Anbieters an.

Dateien

  • exp.py - verification script / Verifizierungsskript
  • exp.png - successful verification screenshot / Screenshot der erfolgreichen Verifizierung
  • README.md - bilingual vulnerability documentation / Zweisprachige Schwachstellendokumentation
Tool herunterladen