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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
moodle-blackboard-img — Moodle 5.2.3 - 高危 - 远程 - 路径 - Blackboard img src 将文件复制到导入树之外 | Kitploit
工具/GitHubGitHub/abraxas/moodle-blackboard-img
漏洞分析漏洞利用Web应用程序漏洞利用信息收集Web安全渗透测试实验室与实践
GitHubabraxas/moodle-blackboard-img

moodle-blackboard-img

Moodle 5.2.3 - 高危 - 远程 - 路径 - Blackboard img src 将文件复制到导入树之外

查看仓库
24天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - moodle-blackboard-img

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  moodle-blackboard-img

moodle-blackboard-img

Moodle LMS 5.2.3 - Moodle

类别: 文件读取 可达性: 远程

qformat_blackboard_six_base::text_field 将 img src 拼接到 $this->filebase 上,且未使用 PARAM_PATH。随后 store_file_for_text_field 将该路径复制到用户草稿文件区。同族的 get_filecontent 已经使用 clean_param($path, PARAM_PATH) 进行了限制。MSA-26-0012 使用 PARAM_FILE 限制了数据库活动导入。Blackboard 的 img src 不在该集合中。

能够导入 Blackboard zip 的教师可以植入 <img src="https://raw.githubusercontent.com/html/config.php">。草稿中的“图片”即为 config.php。学生无法导入。

ID暂无 CVE
CWECWE-22 / CWE-73
CVSS中危:6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
产品Moodle
受影响版本5.2.3 标签 v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
认证教师(题库 / 课程 Blackboard 导入)
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

攻击者能做什么

写入者:能够将 Blackboard zip 导入题库(或课程)的教师。典型目标是获取 config.php(数据库密码),以 PHP 用户身份读取。除非串联第二个遗留漏洞,否则并非 RCE。并非 LPE。

权限方法 / 汇聚点侦察 / 完整性 / 可用性实验验证或推断
通过 img src 中的 ../ 读取 PHP 用户可打开的文件text_field 拼接 $this->filebase . '/' . $path;store_file_for_text_field 复制到草稿区侦察(文件字节)实验验证。草稿字节与 /var/www/html/config.php 匹配,并包含 MOODLE-BLACKBOARD-IMG-WITNESS
将该草稿作为“图片”下载草稿 itemid + 重写后的 @@PLUGINFILE@@ 文件名侦察实验验证。GET /draft 返回 298 字节,sha256 与 config.php 相同
之后任何能打开所导入题目的人同一草稿 / pluginfile侦察推断。实验止步于教师草稿匹配
学生导入同一 zip,role=student不适用实验验证 已关闭。HTTP 403 teacher-only
通过 clean_param($path, PARAM_PATH) 的同一路径gadget jail=1不适用实验验证 已关闭。无匹配、无见证,路径保持在 filebase 之下
PHP RCE / 操作系统 LPE不适用不适用已关闭。此遗留漏洞将文件字节复制到草稿中。它不会执行这些字节

未启用 Blackboard 导入的默认 Moodle 不存在此漏洞。MSA-22-0016 仅清理了 baseurl。

同一版本遗留漏洞:enrol_database SQLi、grades feedback IDOR、hidden grade items。

我是如何发现的

在 MSA-26-0042/0043 之后,我锁定了 moodle/moodle v5.2.3。MSA-26-0012 限制了数据库活动导入。我接下来关注 Blackboard,因为 get_filecontent() 已经知道 PARAM_PATH,而 text_field() 仍然进行原始拼接。

已记录的弯路:将学生导入视为泄露点(实际为 403);因为复制的文件是 PHP 就称其为 RCE(草稿存储字节,并不会 include 它们);假设 MSA-22-0016 已完成工作(仅 baseurl)。一个反弹 shell。作秀。

实验环境

针对该版本 text_field / store_file_for_text_field 的忠实 gadget,并非完整的 Moodle PHP 应用。how=gadget。

python3 moodle-blackboard-img-Abraxas-Labs.py

或

cd lab
./run.sh

目标 仅限 http://127.0.0.1:19560。Compose 项目 moodle-blackboard-img。运行后栈会拆除。

SUCCESS moodle-blackboard-img how=gadget pin=v5.2.3 teacher-import=yes draft-match-config=yes student=403 param-path-jail=yes MOODLE-BLACKBOARD-IMG-WITNESS

修复方案

对 img src 使用 clean_param($path, PARAM_PATH),然后 realpath 必须保持在 realpath($this->filebase) 之下。与 get_filecontent() 形式相同。

参考资料

  • github.com/moodle/moodle 标签 v5.2.3
  • formatbase.php(text_field、store_file_for_text_field)
  • format.php(get_filecontent 已使用 PARAM_PATH)
  • 附近已修补(非此拼接):MSA-26-0012
  • 同一版本:moodle-enrol-database-sqli · moodle-grades-feedback-idor · moodle-grades-gradeitems
  • CWE-22

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验环境。无担保。

下载工具