
Скрипт, демонстрирующий концепцию перечисления пользователей в LiquidFiles через конечную точку сброса пароля, позволяющий идентифицировать действительных пользователей для атак методом перебора.
Данная уязвимость была обнаружена в LiquidFiles версии 4.1 и ниже.
При инициации сброса пароля через конечную точку «POST /password_reset» приложение отвечает по-разному в зависимости от того, зарегистрирован ли указанный адрес электронной почты. В обоих случаях выполняется перенаправление, а ответ включает cookie «_filetransfer_session». Когда этот cookie используется для доступа к корневому пути («/»), итоговое сообщение об ошибке отличается в зависимости от действительности указанного адреса электронной почты.
Это фактически позволяет злоумышленнику составить список действительных пользователей, который затем можно использовать в таких атаках, как подбор паролей или password spraying.
Ответ на сброс пароля — существующие/действительные пользователи
Ответ на сброс пароля — несуществующие/недействительные пользователи
После нескольких попыток сброса пароля срабатывает блокировка по IP-адресу в качестве меры безопасности, предотвращающая дальнейшие запросы с того же IP-адреса. Однако этот механизм недостаточен, поскольку его можно обойти с помощью бесплатных инструментов. Например, обойти блокировку можно с помощью прокси-серверов AWS API Gateway в сочетании с расширением «IP Rotate» в Burp Suite. Скрипт ожидает локальный прокси на порту 8080.
Используемое приложение для обхода блокировки по IP-адресу:
Это расхождение в сообщениях об ошибках позволяет автоматизировать перечисление действительных имен пользователей или адресов электронной почты. Чтобы продемонстрировать это, я создал скрипт доказательства концепции, который принимает список потенциальных зарегистрированных адресов электронной почты и определяет действительные на основе поведения ответа приложения.
Вывод скрипта перечисления пользователей:

После выявления действительных имен пользователей их можно использовать в атаке методом подбора паролей или password spraying. Учитывая, что некоторые пользователи могут использовать слабые или повторно используемые пароли, это представляет высокий уровень угрозы безопасности.
Вероятность эксплуатации высока, текущие меры безопасности легко обходятся, а эксплуатация проста. Влияние оценивается как среднее, поскольку после получения списка действительных пользователей всё ещё необходимо скомпрометировать учетную запись с помощью password spraying или атак методом подбора паролей.
Обратите внимание, что это приложение используется множеством различных организаций и почти всегда доступно из публичного интернета. Это означает, что достаточно собрать адреса электронной почты или имена сотрудников из интернета и применить password spraying к приложению.
В результате данная проблема представляет высокий риск.
Версия 4.2 устраняет эту проблему, внедряя механизмы блокировки на основе пользователя и отключая по умолчанию различимые сообщения об ошибках, которые позволяют перечисление пользователей.