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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29041 — 嗨,我是 K,这是我的第一个 CVE,一个远程代码执行(RCE)漏洞。这是我作为安全研究员旅程的起点。 | Kitploit
工具/GitHubGitHub/kx00007/cve-2026-29041
漏洞分析漏洞利用Web应用程序漏洞利用论文与研究学习与教育
GitHubkx00007/cve-2026-29041

CVE-2026-29041

嗨,我是 K,这是我的第一个 CVE,一个远程代码执行(RCE)漏洞。这是我作为安全研究员旅程的起点。

查看仓库
256个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-29041 — 通过 Chamilo LMS 1.11.32 中的无限制文件上传实现已认证 RCE

Chamilo LMS 1.11.32 中通过 ck_uploadimage AJAX 端点的不当文件上传验证实现已认证远程代码执行。低权限学生可上传伪装成图片的 PHP Web Shell,从而实现完全服务器沦陷。


📋 漏洞摘要

字段详情
产品Chamilo LMS
版本1.11.32(已确认)
漏洞类型危险类型文件的无限制上传(CWE-434)
影响已认证远程代码执行(RCE)
CVSS v3.18.8(高危) — CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
所需认证✅ 是 — 学生角色(低权限)
CWECWE-434:危险类型文件的无限制上传
发现者MENG HOKSENG

🧠 漏洞详情

受影响端点

root@kitploit:~
POST /main/inc/ajax/document.ajax.php?a=ck_uploadimage&cidReq=[COURSE_ID]

易受攻击文件: main/inc/ajax/document.ajax.php
易受攻击函数: ck_uploadimage

根本原因分析

上传处理程序仅使用 PHP 的 mime_content_type() 函数执行 MIME 类型验证,该函数检查文件的魔数(内容的前几个字节),而非文件扩展名。

root@kitploit:~
// 易受攻击的验证逻辑(简化)
$mime = mime_content_type($_FILES['upload']['tmp_name']);

if (!mimeAccepted($mime, ['image'])) {
    die("Invalid file type");
}

// ❌ 无扩展名验证
// ❌ 无文件名清理
move_uploaded_file($_FILES['upload']['tmp_name'], $uploadPath . $fileUploadName);

两个独立的弱点组合成完整的利用链:

  1. 仅 MIME 类型验证 — 通过在 PHP 代码前添加有效的图片魔数(GIF89a)即可绕过
  2. 保留原始文件名 — 服务器使用攻击者控制的文件名(包括 .php 扩展名)存储文件,且位于可通过 Web 访问的目录中

绕过技术

恶意文件的构造方式如下:

root@kitploit:~
GIF89a;<?php system($_GET['cmd']); ?>
  • mime_content_type() 读取 GIF89a → 归类为 image/gif → 通过验证
  • move_uploaded_file() 将文件保存为 /app/upload/users/<id>/ 下的 shell.php → 可直接通过浏览器执行

💣 概念验证

运行完整利用程序,自动以学生身份登录并执行文件上传 image 运行 Python 完整利用程序后,我们可以在 http://localhost:8081/app/upload/users/3/3/my_fileszhxoxgwj.php?cmd=id 找到上传的 Web Shell image

🛡️ 影响

成功利用此漏洞可从学生级账户实现完全服务器沦陷:

  • 🔴 远程代码执行 — 通过 Web Shell 执行任意操作系统命令
  • 🔴 数据泄露 — 完全访问应用程序数据库凭据和文件
  • 🔴 横向移动 — 从被攻陷的服务器向内部网络渗透
  • 🔴 持久化 — 能够在 Web 可访问目录中植入后门
  • 🔴 服务中断 — 修改或删除课程内容和用户数据

CIA 影响:机密性、完整性和可用性完全丧失。


🔧 修复建议

▪ 强制执行严格的文件扩展名白名单 仅应接受明确允许的图片文件扩展名(例如 .jpg、.png、.gif)。 无论 MIME 类型如何,都必须拒绝具有可执行扩展名(如 .php、.phtml 或 .phar)的上传文件。

▪ 不要仅依赖 MIME 类型验证 使用 mime_content_type() 等函数的 MIME 类型检查不应作为主要安全控制手段, 因为它们可以通过构造的文件头绕过。MIME 验证只能作为辅助检查。

▪ 将上传文件存储在 Web 可访问目录之外 上传的内容应存储在无法通过 Web 服务器直接访问的目录中。 如果需要公开访问,应通过受控的处理程序提供文件,而非直接访问。

📄 参考资料

  • Chamilo LMS 官方网站
  • CWE-434:危险类型文件的无限制上传
  • OWASP:无限制文件上传
  • CVSS v3.1 计算器

👤 作者

MENG HOKSENG
独立安全研究员


⚠️ 法律免责声明

本项目仅用于教育和授权的安全研究目的。作者不对因使用此利用程序造成的任何滥用或损害负责。在执行安全评估之前,请始终获得明确的书面授权。

下载工具