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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-21978 — Эксплойт-скрипт с выводом результата | Kitploit
Инструменты/GitHubGitHub/skytina/cve-2021-21978
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubskytina/cve-2021-21978

CVE-2021-21978

Эксплойт-скрипт с выводом результата

Репозиторий
25515 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

CVE-2021-21978

Эксплойт с выводом результата, более простой способ

0. Информация об уязвимости

В веб-интерфейсе управления VMware View Planner есть функция загрузки файла журнала, не требующая аутентификации, а путь записываемого файла журнала контролируется пользователем. Перезаписав файл функции загрузки журнала log_upload_wsgi.py, можно добиться RCE.

Код уязвимости:

root@kitploit:~
def application(environ, start_response):
    logger.debug("application called")

    if environ['REQUEST_METHOD'] == 'POST':
        post = cgi.FieldStorage(
            fp=environ['wsgi.input'],
            environ=environ,
            keep_blank_values=True
        )

        # TO DO: Puth path in some config or read from config is already available
        resultBasePath = "/etc/httpd/html/vpresults"
        try:
            filedata = post["logfile"]
            metaData = post["logMetaData"]

            if metaData.value:
                logFileJson = LogFileJson.from_json(metaData.value)

            if not os.path.exists(os.path.join(resultBasePath, logFileJson.itrLogPath)):
                os.makedirs(os.path.join(resultBasePath, logFileJson.itrLogPath))

            if filedata.file:
                if (logFileJson.logFileType == agentlogFileType.WORKLOAD_ZIP_LOG):
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, WORKLOAD_LOG_ZIP_ARCHIVE_FILE_NAME.format(str(logFileJson.workloadID)))
                else:
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, logFileJson.logFileType)
                with open(filePath, 'wb') as output_file:
                    while True:
                        data = filedata.file.read(1024)
                        # End of file
                        if not data:
                            break
                        output_file.write(data)

1. Зависимости

root@kitploit:~
pip install requests

2. Проверка

root@kitploit:~
git clone https://github.com/skytina/CVE-2021-21978
cd CVE-2021-21978
python3 CVE-2021-21978.py https://192.168.80.3/

image-20210305162131318

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

Скрипт эксплуатации перезаписывает log_upload_wsgi.py, превращая его в бэкдор.

image-20210305162339613

4. Ссылки

Источник эксплойта: https://twitter.com/osama_hroot/status/1367258907601698816

Официальное сообщение VMware: https://www.vmware.com/security/advisories/VMSA-2021-0003.html

Заявление

  • Инструмент предназначен только для тестирования безопасности и исследований сотрудниками службы безопасности. Любые прямые или косвенные последствия и убытки, вызванные несанкционированным тестированием, несёт сам пользователь.
  • Инструмент предназначен только для тестирования безопасности и исследований сотрудниками службы безопасности. Любые прямые или косвенные последствия и убытки, вызванные несанкционированным тестированием, несёт сам пользователь.

Если приведённый выше материал был полезен, вы можете подписаться на официальный аккаунт.

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