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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-46398 — Доказательство концепции эксплуатации уязвимости CVE-2021-46398 | Kitploit
Инструменты/GitHubGitHub/laliea/cve-2021-46398
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийФишингОбучение и ОбразованиеЛаборатории и ПрактикаArchived
GitHublaliea/cve-2021-46398

CVE-2021-46398

Доказательство концепции эксплуатации уязвимости CVE-2021-46398

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

Популярное

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

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

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

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

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

CVE-2021-46398 - Lalie ARNOUD, Gaspard ANDRIEU

В этом репозитории вы найдете доказательство концепции эксплуатации уязвимости CVE-2021-46398 с помощью docker compose, а также анализ влияния этой уязвимости на информационные системы.

# Exploit Title: FileBrowser 2.17.2 - Cross Site Request Forgery (CSRF) to Remote Code Execution (RCE)
# Date: 05/02/2022
# Exploit Author: FEBIN MON SAJI
# Vendor Homepage: https://filebrowser.org/
# Software Link: https://github.com/filebrowser/filebrowser
# Version:
    FileBrowser <= 2.17.2
# Tested on: Ubuntu 20.04
# CVE : CVE-2021-46398

Что такое FileBrowser?

Согласно веб-сайту FileBrowser, FileBrowser — это популярное программное обеспечение в духе «создай своё собственное облако», которое можно установить на сервер, указать ему путь и затем получать доступ к своим файлам через удобный веб-интерфейс, разработанный на языке Go, со множеством функций. Это немного похоже на Google Drive, за исключением того, что каждый может владеть и размещать собственный экземпляр.

Описание уязвимости

Администраторы FileBrowser могут создавать несколько пользователей, в том числе другого пользователя с правами администратора, и предоставлять доступ к любой директории, к которой пожелают. Создание пользователей обрабатывается конечной точкой /api/users. Эта конечная точка принимает входные данные в формате JSON для создания пользователей, но не проверяет заголовок Content-Type HTTP, значение которого должно быть application/json, а вместо этого принимает text/plain; именно здесь и возникает уязвимость. Кроме того, заголовок Origin не проверяется и не реализованы анти-CSRF токены. Следовательно, злоумышленник может легко использовать эту уязвимость для создания бэкдор-пользователя с правами администратора и доступом к домашней директории или к любой другой директории, к которой хочет получить доступ, просто отправив легитимному администратору URL-адрес вредоносной веб-страницы и получив доступ ко всей файловой системе сервера (более подробное объяснение этого процесса приведено в разделе демонстрации).

Кроме того, администратор может выполнять команды в системе, поэтому эта уязвимость приводит к RCE.

Вот диаграмма последовательности, которая обобщает процесс атаки (Алиса — хакер, а Боб — администратор и владелец экземпляра FileBrowser):

sequenceDiagram
Alice (hacker) ->> Alice (hacker): *Maliciously creates the malicious HTML page*
Alice (hacker) ->> Bob (admin): Here is a cool page! You must check that bro!
Bob (admin) ->> Alice (hacker): Thanks dude, let's open that!
Bob (admin) ->> Bob (admin): *Opens the page thinking it's something cool*
Bob (admin) -->> FileBrowser: *Sends a request to create a user without knowing it*
FileBrowser -->> FileBrowser: *Creates a new admin privileged user as requested*
Alice (hacker) ->> FileBrowser: Eheheh Bob is so dumb! *Connect to FileBrowser with the backdoor user*
FileBrowser ->> Alice (hacker): *Accept Alice connection with the new user created*
Alice (hacker) ->> FileBrowser: *Request shell access to FileBrowser with the appropriate button then makes sytem calls on Bob's computer*

Демонстрация уязвимости

Цель этой демонстрации — создать мини-архитектуру, состоящую из двух/трёх машин:

  • ваш персональный компьютер — с одной стороны как компьютер администратора FileBrowser, а с другой — как компьютер злоумышленника;
  • уязвимый Docker-контейнер, имитирующий удалённый сервер FileBrowser.

Это действительно упрощённая архитектура, цель которой — подчеркнуть технический аспект уязвимости.

Запуск образа уязвимой машины

Для этого эксперимента вам понадобится только docker.

В этой конфигурации целевая машина основана на образе FileBrowser v2.17.2 (который уязвим к этой ошибке), в котором единственная учётная запись FileBrowser — это учётная запись администратора с логином/паролем admin/admin.

Запуск целевой машины:

mkdir srv && docker compose up

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

Создание вредоносной веб-страницы

Со стороны злоумышленника вредоносная веб-страница позволит нам выполнить вызов API FileBrowser и создать нашего бэкдор-пользователя с компьютера администратора.

Пример такой страницы приведён в этом репозитории под именем index.html. Это простая страница HTML со скрытой формой, которая выполняет POST запрос к конечной точке /api/users FileBrowser с полезной нагрузкой в атрибуте name элемента input. Эта полезная нагрузка создаёт пользователя с правами администратора, логин которого — «oui», а пароль — «oui», и срабатывает при нажатии кнопки.

Мы, конечно, могли бы создать более красивую и привлекательную страницу, чем эта, и скрыть отправку HTTP запроса в другом элементе веб-сайта; это сделано лишь для того, чтобы вы могли увидеть технический аспект эксплуатации уязвимости. Помните, что цель этой вредоносной веб-страницы — быть открытой администратором FileBrowser, чтобы он ничего не заподозрил!

Выполнение эксплойта веб-страницы путём отправки HTML-формы

Со стороны администратора мы спокойно занимаемся администрированием FileBrowser. Перейдите на 127.0.0.1:8080 и войдите, используя учётные данные администратора admin/admin.

Затем мы получаем вредоносную веб-страницу любым способом, например, в фишинговом письме, и выполняем действие, которое запускает эксплойт. Откройте веб-страницу index.html и нажмите кнопку; это запустит полезную нагрузку.

Доступ к бэкдор-пользователю FileBrowser

Теперь вернёмся на сторону злоумышленника: у нас есть бэкдор-пользователь с правами администратора на сервере FileBrowser.

Откройте ваш любимый веб-браузер в режиме инкогнито, чтобы убедиться, что вы не используете какие-либо средства аутентификации администратора. Перейдите на localhost:8080 и войдите, используя учётные данные бэкдор-пользователя oui/oui.

Поздравляем! Теперь у вас есть доступ к файловой системе сервера FileBrowser, а значит, и ко всем файлам пользователей сервера!

А поскольку FileBrowser — это отличная платформа с множеством функций, вы можете запустить экземпляр терминала, нажав кнопку «toggle shell»... попробуйте ввести whoami и делайте всё, что захотите, от имени root :)

Чтобы разрешить бэкдор-пользователю использовать команды оболочки, они должны быть явно указаны в полезной нагрузке. Загляните в index.html, чтобы добавить свои!

Исправление

Уязвимость исправлена, начиная с версии v2.18.0. Информация об этом доступна в их GitHub. Внедрение исправления не потребовало больших затрат, так как нужно было изменить всего 6 строк кода в одном файле программы. Поскольку уязвимость возникла из-за ошибки разбора (см. описание уязвимости), достаточно было гарантировать, что любой запрос перед обработкой преобразуется в формат application/json.

Глоссарий

  • CSRF: Cross-Site Request Forgery (межсайтовая подделка запроса)
  • CVE: Common Vulnerabilities and Exposures
  • POST: метод HTTP
  • RCE: Remote Code Execution (удалённое выполнение кода)

Ссылки

  • CVE-2021-46398
  • ExploitDB
  • Пример эксплойта
  • Патч безопасности из репозитория FileBrowser на GitHub
  • Обсуждение проблемы в репозитории FileBrowser на GitHub
Скачать инструмент