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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2022-1565 — 针对 WordPress WP All Import 插件 <= 3.6.7(CVE-2022-1565)的认证远程代码执行漏洞利用。通过 wp_all_import_get_gz.php 中不安全的文件类型验证上传任意文件。 | Kitploit
工具/GitHubGitHub/phanthibichtram12/cve-2022-1565
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队Payload 开发
GitHubphanthibichtram12/cve-2022-1565

CVE-2022-1565

针对 WordPress WP All Import 插件 <= 3.6.7(CVE-2022-1565)的认证远程代码执行漏洞利用。通过 wp_all_import_get_gz.php 中不安全的文件类型验证上传任意文件。

查看仓库
2年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

WordPress Plugin WP All Import <= 3.6.7 - 远程代码执行 (RCE) (已验证)

root@kitploit:~
日期:2023年11月5日
利用作者:Việt HÙng (https://github.com/phanthibichtram12)
供应商主页:https://www.wpallimport.com/
软件链接:https://wordpress.org/plugins/wp-all-import/advanced/ (向下滚动选择版本)
版本:<= 3.6.7 (已测试:3.6.7)
测试环境:WordPress 6.1 (不依赖操作系统,因为此利用不提供载荷)
CVE:CVE-2022-1565

漏洞描述

WP All Import 插件因通过文件 wp_all_import_get_gz.php 缺乏文件类型验证,导致在 3.6.7 及之前版本中容易受到任意文件上传攻击。 这使得经过身份验证的攻击者(拥有管理员及以上权限)能够将任意文件上传到受影响网站的服务器,进而可能导致远程代码执行。

利用工作原理

1. 准备 zip 文件:

  • 创建包含载荷的 PHP 文件(例如:反弹 shell)
  • 将变量 "payload_file_name" 设置为该文件的名称(例如:"shell.php")
  • 创建一个包含载荷的 zip 文件
  • 将变量 "zip_file_to_upload" 设置为该文件的路径(例如:"/root/shell.zip")

2. 使用管理员账户登录:

  • 将变量 "target_url" 设置为目标的基 URL(不要以斜杠 / 结尾)
  • 将变量 "admin_user" 设置为管理员账户的用户名
  • 将变量 "admin_pass" 设置为管理员账户的密码

3. 通过 get_wpnonce_upload_file() 方法获取 wpnonce

  • 实际上有 2 种 wpnonce:
  • 第一个 wpnonce 将通过 PluginSetting 类中的 get_wpnonce_edit_settings() 方法获取。 此 wpnonce 允许我们更改插件设置(参见步骤 4)
  • 第二个 wpnonce 将通过 PluginSetting 类中的 get_wpnonce_upload_file() 方法获取。 此 wpnonce 允许我们上传文件

4. 通过 PluginSetting 类中的 check_if_secure_mode_is_enabled() 方法检查插件安全模式是否已启用

  • 如果安全模式已启用,zip 内容将放置在一个随机命名的目录中。 利用将禁用安全模式。通过禁用安全模式,zip 内容将放入主目录(参见 payload_url 变量)。 用于启用/禁用安全模式的方法是 set_plugin_secure_mode(set_to_enabled:bool, wpnonce:str)
  • 如果安全模式未启用,利用将上传文件,但之后不会启用安全模式。

5. 通过 upload_file(wpnonce_upload_file: str) 方法上传文件

  • 上传后,服务器会响应 HTTP 200 OK,但这并不意味着上传成功完成。 响应将包含类似如下的 JSON: {"jsonrpc":2.0","error":{"code":102,"message": "请验证您上传的文件是否为有效的 ZIP 文件。"},"is_valid":false,"id" :"标识"} 如您所见,它报告了一个代码为 102 的错误,但根据我的测试,上传已经完成

6. 如果安全模式已启用,则通过 switch_back_to_secure_mode() 方法重新启用安全模式

7. 通过 activate_payload() 方法激活载荷

  • 您可以自行定义激活载荷的方法。 这样做的原因是此利用不提供任何载荷。 由于您可以使用自定义载荷,您可能希望通过 HTTP POST 请求而不是 HTTP GET 请求来激活它,或者您可能希望传递参数

为什么要利用安全模式?

根据 WPSCAN 提供的此漏洞的 PoC,我们可以通过访问“管理的导入”页面来检索上传的文件。 我不知道为什么,但上传任何文件后,我无法在该页面中看到上传的文件(可能需要 Pro 版本?)。 我必须找到一个替代方案,我通过利用这个选项做到了这一点。

WPSCAN 页面:https://wpscan.com/vulnerability/578093db-a025-4148-8c4b-ec2df31743f7

更新于 2022年11月6日

在测试过程中,我注意到我上传了一个无效的 XML 文件,这就是它没有显示在“管理的导入”页面中的原因。

无论如何,这种禁用安全模式的方法更“隐蔽”一些,因为上传的内容不会显示在管理页面上。 如果您希望上传的文件显示在管理页面上,则需要执行更多步骤。

利用时遇到问题?

为使利用成功,请考虑以下几点:

  1. 检查 target_url 和管理员凭据
  2. 检查 zip 文件路径和载荷名称(它们可能不同)
  3. 如果您在本地测试,请尝试将 verify_ssl_certificate 设置为 False
  4. 您可以使用 print_response(http_response) 进行进一步调查
下载工具