
Разбор CVE-2022-22828
Viden Labs обнаружила уязвимость типа Insecure Direct Object Reference (IDOR) в продукте Synametrics SynaMan. Эта уязвимость присутствует в версиях 4.9 и более ранних.
Данная уязвимость была исправлена в версии 5.0.
«Уязвимости небезопасных прямых ссылок на объекты (IDOR) — это тип уязвимости контроля доступа, которая возникает, когда приложение использует пользовательский ввод для прямого доступа к объектам». - https://portswigger.net/web-security/access-control/idor.
Эксплуатация данной уязвимости позволяет получить доступ к (потенциально чувствительным) файлам в домашней папке пользователя SynaMan (включая вложенные папки), к которым у злоумышленника нет прав доступа.
Пользователь SynaMan с именем «internaluser». Этот пользователь был подключён к AD, но не имеет значения, подключён он к AD или нет.
В домашней папке internaluser находятся два файла:
Рисунок 1: Каталог пользователя с файлами
Для файла file-download.docx была создана ссылка для скачивания и передана имитируемой внешней стороне.
Рисунок 2: Страница загрузки файла SynaMan
Тестирование веб-приложения проводилось из сети 10.0.2.0/24 с использованием Burp Suite на Kali.
Экземпляр Windows Server 2019 работает с конфигурацией по умолчанию, с установленными последними обновлениями безопасности, а входящий порт 443 открыт.
SynaMan был настроен в соответствии с лучшими практиками, следуя рекомендациям с сайта Synametrics Technologies.
На рисунке 3 ниже представлен обзор сетевой конфигурации для лабораторного теста.

Рисунок 3: Топология тестирования SynaMan
| Компьютер | Роль | ОС | Браузер |
|---|---|---|---|
| 10.0.2.30 | Сервер тестирования веб-приложения | Kali Linux (VM) | Встроенный браузер Burp Suite |
| 10.0.3.50 | Сервер SynaMan | Windows Server 2019 (VM) | Н/Д |
Таблица 1 — Дополнительная информация о настройке
Уязвимость была обнаружена, когда внешняя сторона переходит по ссылке для скачивания, либо переданной им, либо найденной через поиск «pubopp?». Гиперссылка для скачивания файла содержит имя файла в кодировке base64, включая путь. Этот путь можно изменить, чтобы загрузить другие файлы из папки пользователя, которые не были опубликованы. Хотя для этого злоумышленнику необходимо правильно угадать имя файла, такие инструменты, как Burp Suite, делают этот перебор тривиальным и автоматизированным. Графическое представление этого процесса показано на рисунке 4 ниже.

Рисунок 4: Графическое представление уязвимости GET-запроса
На рисунке 5 ниже показан итоговый GET-запрос при нажатии на ссылку для скачивания.

Рисунок 5: GET-запрос Burp Suite
Анализ имени файла в кодировке base64 (передаваемого в качестве параметра с именем «fn») показывает местоположение файла.

Рисунок 6: Имя файла в base64 в Burp Suite
С помощью Burp Suite его можно изменить на другое имя файла и подставить в GET-запрос. В данном примере мы будем использовать «secret.txt», так как знаем, что этот файл существует в папке.

Рисунок 7: Изменённое имя файла в base64 в Burp Suite

Рисунок 8: Изменённый GET-запрос Burp Suite
Отправка изменённого GET-запроса позволяет загрузить файл, который не был опубликован, как показано на рисунке 9 ниже.

Рисунок 9: Несанкционированная загрузка SynaMan
Текущие доступные параметры безопасности в SynaMan не предоставляют средства контроля для смягчения этой атаки, однако все загруженные файлы регистрируются в журнале.