CVE-2025-64081CVE-2025-64081是一个严重程度为CRITICAL的SQL注入漏洞,CVSS评分高达9.8分。该漏洞存在于SourceCodester公司开发的患者候诊区队列管理系统(Patients Waiting Area Queue Management System)v1版本中的/php/api_patient_schedule.php文件里。漏洞允许未经认证的远程攻击者通过appointmentID参数注入任意SQL命令,从而对数据库执行未授权操作。
患者候诊区队列管理系统是一种用于医疗机构管理患者排队等候的应用软件,通常部署在医院、诊所等医疗场所。该系统负责管理患者预约信息、排队顺序、就诊安排等敏感数据。由于系统处理的是医疗相关的个人敏感信息,一旦被攻击者利用此SQL注入漏洞,将导致严重的医疗数据泄露风险。
攻击者利用此漏洞可以执行以下恶意操作:提取数据库中的患者个人信息(包括姓名、联系方式、病史等敏感数据)、修改或删除患者预约记录、获取系统管理员凭据、甚至在某些配置下执行操作系统命令。由于该漏洞无需认证即可利用,且攻击向量为网络层面,攻击者可以在互联网上远程发起攻击,无需任何前期准备或用户交互。
此漏洞的CVSS向量显示其具有完整的机密性、完整性和可用性影响(C:H/I:H/A:H),意味着攻击者可以完全控制受影响系统的数据,并可能影响系统的正常运行。建议受影响的用户立即采取修复措施,避免遭受攻击。
该SQL注入漏洞存在于php/api_patient_schedule.php文件中的appointmentID参数处理逻辑。当应用程序处理患者预约信息时,直接将用户提供的appointmentID参数值拼接到SQL查询语句中,而未进行充分的输入验证或使用参数化查询。
漏洞原理分析:
1. 用户通过HTTP请求向/php/api_patient_schedule.php发送包含appointmentID参数的请求
2. 后端代码直接将appointmentID参数值拼接到SQL语句中
3. 恶意构造的SQL语句被数据库执行
4. 攻击者通过操控appointmentID参数值,可以实现UNION注入、布尔盲注、时间盲注等多种SQL注入技术
利用方式:
攻击者可以通过以下方式利用此漏洞:
- 使用UNION SELECT语句提取数据库中的敏感表和字段信息
- 通过UNION查询获取用户表中的管理员账号和密码哈希
- 利用ERROR-BASED注入快速获取数据
- 使用时间盲注确认漏洞存在并逐步提取数据
由于该参数直接暴露在URL或POST请求中,且系统未实施任何输入过滤或SQL语句预编译机制,攻击者可以在无需任何认证的情况下远程利用此漏洞。攻击者首先需要识别数据库类型,然后根据数据库特性构造相应的Payload来执行恶意SQL命令。