
Этот репозиторий содержит скрипт на Python, предназначенный для эксплуатации CVE-2024-50379 — уязвимости, которая позволяет злоумышленникам загружать JSP-шелл на уязвимый сервер и удалённо выполнять произвольные команды. Данный эксплойт особенно полезен, когда каталог /uploads либо не защищён, либо отсутствует на целевом сервере.
Этот репозиторий содержит Python-скрипт, предназначенный для эксплуатации CVE-2024-50379 — уязвимости, которая позволяет злоумышленникам загружать JSP-шелл на уязвимый сервер и удалённо выполнять произвольные команды. Данный эксплойт особенно полезен, когда каталог /uploads на целевом сервере не защищён или отсутствует.
CVE-2024-50379 — это уязвимость, затрагивающая серверы, которые некорректно обрабатывают загрузку файлов, что позволяет злоумышленнику загрузить JSP-шелл. Этот шелл затем может использоваться для удалённого выполнения произвольных команд. Предоставленный Python-скрипт автоматизирует этот процесс, загружая шелл на уязвимый сервер и обеспечивая взаимодействие с сервером через интерфейс командной строки.
Перед запуском скрипта убедитесь, что у вас установлено следующее:
Python 3.6+ (рекомендуется)
Библиотека requests. Установите её с помощью pip:
pip install requests
Эксплойт нацелен на системы, работающие под управлением Apache Tomcat или аналогичных серверов, которые не обеспечивают должную защиту функциональности загрузки файлов или имеют некорректно настроенные каталоги /uploads.
Важно: Этот инструмент следует использовать только в контролируемых средах, например, при пентесте с разрешения или в образовательных целях. Несанкционированное использование данного инструмента может быть незаконным и неэтичным.
http:// к URL-адресам без схемы./uploads: Если каталог /uploads не найден, инструмент продолжает попытки загрузки шелла.Клонируйте репозиторий на свой локальный компьютер:
git clone https://github.com/dragonked2/CVE-2024-50379-POC.git
cd CVE-2024-50379-POC
Убедитесь, что у вас установлены необходимые библиотеки Python:
pip install requests
Запустите скрипт следующей командой:
python exploit_cve_2024_50379.py
Скрипт запросит у вас базовый URL уязвимого сервера (например, http://localhost:8080). Если URL не содержит http:// или https://, он автоматически добавит http://.
После успешной загрузки JSP-шелла вы можете интерактивно вводить команды для выполнения на сервере. Скрипт отобразит вывод.
Пример взаимодействия:
[+] Enter the base URL (e.g., localhost:8080): http://127.0.0.1:8080
[+] Checking server accessibility...
[+] /uploads directory not found (404), but continuing with upload attempt...
[+] Attempting to upload shell (Attempt 1/3)...
[+] Shell uploaded successfully! Check the URL: http://127.0.0.1:8080/uploads/shell.jsp
[+] Enter the command to execute on the server (or 'exit' to quit): whoami
[+] Executing command: whoami
[+] Command output:
root
Введите exit, чтобы выйти из инструмента после завершения взаимодействия.
Инструмент включает надёжную обработку ошибок для распространённых проблем, таких как:
Неудачные операции автоматически повторяются до трёх раз с 2-секундной задержкой между попытками. Если операция не удаётся после повторных попыток, отображается сообщение об ошибке.
Приветствуются любые вклады! Если вы нашли ошибки или у вас есть предложения по улучшению, не стесняйтесь открывать issue или отправлять pull request.
Этот инструмент предназначен только для образовательных целей и пентеста. Не используйте этот инструмент на системах, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Несанкционированное использование незаконно и может повлечь уголовную ответственность.
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
#, ##, ###) для структурирования.