
Исследование безопасности и раскрытие уязвимостей для приложения интеграции ownCloud ONLYOFFICE, включая технический анализ, PoC, последствия и меры по устранению.
CWE-307: Ненадлежащее ограничение чрезмерного количества попыток аутентификации Уровень серьёзности
CVSS v3.1: 8.1 (Высокий)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Оценка отражает воздействие, наблюдавшееся при тестировании затронутого потока аутентификации.
Owncloud версии 10.16.3
Затронутая конечная точка WebDAV принимает учётные данные для аутентификации через HTTP-заголовок Authorization: Basic.
Пример запроса:
GET /remote.php/webdav/ HTTP/1.1 Host: target.example Authorization: Basic <BASE64(username:password)>
Значение Base64 представляет собой:
username:password
Повторные неудачные попытки аутентификации для одной и той же учётной записи не активируют ожидаемые механизмы защиты от подбора паролей.
Во время тестирования было отправлено несколько последовательных неверных попыток аутентификации без наблюдения:
Ограничения частоты запросов
Прогрессивных задержек аутентификации
Временной блокировки учётной записи
HTTP 429 Too Many Requests
Последующая попытка аутентификации с использованием корректных учётных данных по-прежнему принималась.
Шаг 1 — Доступ к потоку аутентификации WebDAV
Аутентифицируйтесь в ownCloud и получите доступ к приватному документу/общему ресурсу, использующему затронутый поток аутентификации WebDAV.
При обращении к затронутой конечной точке сервер выдаёт запрос HTTP Basic Authentication.
Шаг 2 — Наблюдение за запросом аутентификации
Учётные данные передаются через HTTP-заголовок Authorization:
Authorization: Basic <BASE64(username:password)>
Шаг 3 — Выполнение повторных попыток аутентификации
Используя контролируемую тестовую учётную запись, многократно отправляйте запросы аутентификации с неверными паролями.
Пример тестовых учётных данных:
testuser:incorrect-password-01 testuser:incorrect-password-02 testuser:incorrect-password-03 ...
Запросы можно воспроизвести с помощью Burp Suite Intruder или другого инструмента тестирования HTTP.
Шаг 4 — Наблюдение за поведением сервера
После нескольких последовательных неудачных попыток аутентификации сервер продолжает принимать запросы аутентификации, не применяя эффективный механизм защиты от подбора паролей.
Не наблюдается ни временной блокировки, ни прогрессивной задержки, ни ограничения частоты запросов, ни ответа HTTP 429 Too Many Requests.
Шаг 5 — Проверка успешной аутентификации
Последующий запрос с корректными учётными данными принимается нормально.
Это демонстрирует, что повторные неудачные попытки аутентификации недостаточно ограничивают последующие попытки угадывания пароля через затронутый механизм аутентификации WebDAV.
Короткое видео PoC, демонстрирующее полный тест, прилагается к этому исследованию.
Злоумышленник, имеющий доступ к затронутой конечной точке аутентификации WebDAV, может многократно пытаться подобрать пароли к учётным записям пользователей, не сталкиваясь с эффективными механизмами защиты от подбора паролей на уровне приложения.
Успешный подбор пароля может привести к несанкционированному доступу к целевой учётной записи ownCloud и связанным с ней ресурсам, в зависимости от привилегий и разрешений этой учётной записи.
Таким образом, уязвимость повышает вероятность успеха атак онлайн-подбора паролей против учётных записей, доступных через затронутый поток аутентификации.
Аналогичная проблема ранее была зарегистрирована в связанном продукте Nextcloud и получила идентификатор:
CVE-2023-32319
Ссылка:
HackerOne Report #1879549
Эта ссылка приведена для сравнения проблемы защиты от подбора паролей при аутентификации и не подразумевает, что две уязвимости идентичны.
Поток аутентификации WebDAV следует интегрировать с существующим механизмом защиты приложения от подбора паролей.
Рекомендуемые меры контроля включают:
Отслеживание неудачных попыток аутентификации для каждой учётной записи и/или источника.
Применение прогрессивных задержек после повторных неудачных попыток аутентификации.
Применение настраиваемого максимального числа последовательных неудачных попыток.
Временное отклонение дальнейших попыток аутентификации после достижения настроенного порога.
Возвращайте HTTP 429 Too Many Requests при срабатывании ограничения частоты запросов.
Применяйте защиту единообразно ко всем механизмам аутентификации, включая HTTP Basic Authentication, используемую WebDAV.
Убедитесь, что альтернативные механизмы аутентификации или эндпоинты не могут быть использованы для обхода существующей в приложении защиты от подбора паролей.
Возможная политика может временно ограничивать аутентификацию после настраиваемого числа последовательных неудачных попыток, например 10 попыток. Точный порог и период ограничения следует определять в соответствии с требованиями безопасности приложения.
ownCloud Server: https://github.com/owncloud/core
Связанная уязвимость: CVE-2023-32319
Отчёт HackerOne #1879549: https://hackerone.com/reports/1879549
Hoang126 от имени команды безопасности ETC JSC
Исследование безопасности и ответственное раскрытие.
Это исследование было проведено в целях тестирования безопасности и ответственного раскрытия.
Тестирование выполнялось в контролируемой среде. Несанкционированный доступ к сторонним аккаунтам или данным не осуществлялся.