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

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

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

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

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

Категории

Все категории
Loading categories
cve-2021-41773-lab — Образовательная лаборатория на FastAPI, демонстрирующая обход каталогов и включение локальных файлов (CVE-2021-41773), с уязвимым сервером, исправленным кодом и примерами закодированных пейлоадов для локального обучения специалистов по безопасности. | Kitploit
Инструменты/GitHubGitHub/kunalkhandelwal-dev/cve-2021-41773-lab
Анализ уязвимостейЭксплуатация веб-приложенийВеб-безопасностьОбучение и ОбразованиеЛаборатории и Практика
GitHubkunalkhandelwal-dev/cve-2021-41773-lab

cve-2021-41773-lab

Образовательная лаборатория на FastAPI, демонстрирующая обход каталогов и включение локальных файлов (CVE-2021-41773), с уязвимым сервером, исправленным кодом и примерами закодированных пейлоадов для локального обучения специалистов по безопасности.

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

Популярное

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

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

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

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

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

CVE-2021-41773 — Минимальная FastAPI-лаборатория

Небольшая автономная лаборатория на FastAPI, демонстрирующая, как декодирование пользовательского ввода перед проверкой границ файловой системы может привести к обходу каталога и локальному включению файлов (LFI), по образцу проблем Apache HTTP Server CVE-2021-41773.


Возможности

  • Минимальные и легко читаемые примеры на FastAPI: уязвимый и исправленный серверы
  • Демонстрирует обходы с одинарным (%2e) и двойным (%252e) кодированием
  • Корневая конечная точка содержит быстрые полезные нагрузки для тестирования с помощью curl
  • Docker не требуется — запускается локально через uvicorn

Структура репозитория

  • patched_app.py — защищённая реализация (использует проверки канонического пути)
  • vulnerable_app.py — намеренно уязвимая реализация
  • secret.txt — секретный файл вне границ, используемый как цель эксплуатации
  • webroot/test.txt — публичный файл, отдаваемый примером
  • README.md — этот файл

  • Требования

    • Python 3.8+
    • pip

    Установите зависимости для запуска:

    root@kitploit:~
    pip install fastapi uvicorn
    

    Быстрый старт

    1. Создайте и активируйте виртуальное окружение (пример для Windows PowerShell):
    root@kitploit:~
    python -m venv venv
    .\venv\Scripts\activate
    
    1. Установите зависимости:
    root@kitploit:~
    pip install fastapi uvicorn
    
    1. Запустите уязвимый сервер (порт 8011):
    root@kitploit:~
    uvicorn vulnerable_app:app --port 8011
    

    Откройте http://127.0.0.1:8011/ в браузере — корневая конечная точка показывает распространённые полезные нагрузки и примечания.

    Чтобы увидеть исправление, остановите уязвимый сервер и запустите исправленный сервер:

    root@kitploit:~
    uvicorn patched_app:app --port 8011
    

    Примеры запросов (curl)

    • Базовый доступ к публичному файлу:
    root@kitploit:~
    curl --path-as-is http://localhost:8011/icons/test.txt
    
    • CVE-2021-41773 (одинарное кодирование) — обходит наивные проверки границ:
    root@kitploit:~
    curl --path-as-is "http://localhost:8011/icons/.%2e/secret.txt"
    
    • CVE-2021-42013 (двойное кодирование) — обходит фильтры, которые не декодируют многократно:
    root@kitploit:~
    curl --path-as-is "http://localhost:8011/icons/.%252e/secret.txt"
    

    На уязвимом сервере эти полезные нагрузки могут вернуть secret.txt. На исправленном сервере они должны отклоняться (HTTP 403).


    Как работает исправление (на высоком уровне)

    1. Полностью декодируйте входящий путь (обработайте несколько уровней кодирования).
    2. Разрешите канонический путь файловой системы с помощью os.path.realpath().
    3. Обеспечьте, чтобы разрешённый путь находился внутри целевой директории webroot — в противном случае отклоните.

    Это обеспечивает правильный порядок: декодирование → канонизация → авторизация.


    Безопасность и использование

    Этот репозиторий предназначен только для локального учебного использования. Не подвергайте уязвимый сервер воздействию публичных сетей.


    Лицензия

    Лицензия MIT


    Автор

    Kunal Khandelwal — исследователь безопасности, безопасность приложений

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