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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-33831 — Пример кода эксплойта для CVE-2021-33831 | Kitploit
Инструменты/GitHubGitHub/lanmarc77/cve-2021-33831
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеОбучение и Образование
GitHublanmarc77/cve-2021-33831

CVE-2021-33831

Пример кода эксплойта для CVE-2021-33831

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

Популярное

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

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

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

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

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

Введение

Приложение используется для отслеживания людей в соответствии с немецким законом об инфекциях, чтобы можно было прослеживать цепочки заражения Covid-19. Оно было создано студенческим проектом под названием iCampus и используется не только в университете Вильдау, но и в Котбус-Зенфтенберге. Затронуто около 10 000 человек. Гости университетов обязаны использовать это приложение.

Приложение состоит из фронтенда на Vue и бэкенда на Laravel. Бэкенд предоставляет конечную точку регистрации гостевых пользователей /corona-app-backend/api/account/register

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

Описание проблемы

Эта конечная точка регистрации не защищена от автоматического создания пользователей (например, с помощью капчи). Как только программа получает csrf-куки через /corona-app-backend/sanctum/csrf-cookie и токен сессии через /corona-app-backend/account, она может создавать пользователей. Сколько угодно. Как угодно долго. Слишком большое количество фейковых пользователей делает практически невозможным для органа здравоохранения отслеживание цепочек заражения, что делает это атакой типа «отказ в обслуживании».

Регистрация пользователя представляет собой POST-запрос к конечной точке регистрации, содержащий csrf-куки и токен сессии, со следующим JSON-нагрузкой:

{"first_name":"John","last_name":"Doe","telephone":"099182","email":null,"accept":true}

Должно быть заполнено либо поле email, либо поле telephone. Оба не проверяются (помимо проверки синтаксиса).

При наличии действительной пользовательской сессии посещения (отметки о входе в комнаты) могут быть созданы через конечную точку /corona-app-backend/api/visit Посещение — это POST-запрос к конечной точке посещений, содержащий csrf-куки и токен сессии, со следующим JSON-нагрузкой:

{"room":"15-K01","visited_on":"2021-05-09T22:01:00.000Z","exited_on":"2021-05-10T21:59:00.000Z"}')

Значение поля room можно получить из списка, который доступен через конечную точку комнат /corona-app-backend/api/rooms и возвращает JSON со всеми комнатами университета. Для успешного вызова нужны только csrf-куки и токен сессии.

Проблему можно сравнить с CVE-2021-33840, но она идёт гораздо дальше.

Кроме того, приложение не содержит какого-либо шифрования во фронтенде и бэкенде (помимо шифрования при передаче через https). Бэкенд получает незашифрованные JSON-данные и отдаёт незашифрованные JSON-данные.

Эксплойт-код

Полностью автоматизированный эксплойт-код на языке Perl создаёт 500 пользователей (из баз случайных имён) со случайными, но правдоподобными номерами телефонов, и все пользователи отмечаются как посетившие одну комнату. Полностью автоматизированно. Была добавлена задержка в 5 секунд на запрос, чтобы не перегружать сервер и не активировать защиту, которая могла бы существовать. Эксплойт успешно отработал в полностью автоматическом режиме, и в тот же день я сообщил о проблеме, включая созданных фейковых пользователей, в университет.

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

Отчётность

Приложение также было подвержено RCE из CVE-2021-3129, о чём я сообщил в университет 12.04.2021.

О текущей проблеме я сообщил 31.05.2021.

По обоим сообщениям я получил письмо с подтверждением получения на следующий день после отправки. Больше я ничего не получал.

Запрос на исходный код приложения находится в процессе рассмотрения.

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