1.6Kпросмотров
16 ноября 2025 г.
stats📷 ФотоScore: 1.8K
😈 Нашёл 0-day... почти Недавно на проекте по пентесту было обнаружено уязвимое коробочное решение Directus v9.23.3. Directus — это open‑source платформа для управления данными, которая превращает любую SQL‑базу в headless CMS, предоставляя автоматическую REST и GraphQL API и удобный веб-интерфейс для управления контентом. С таким ПО я столкнулся впервые, поэтому принялся ресёрчить все возможные там API-эндпоинты, файловую структуру и искать уже известные уязвимости (CVE). Первым делом встала задача определить версию Directus. Немного покопавшись в интернете, обнаружился эндпоинт, раскрывающий версию ПО в одной из констант JS-файла по пути "/admin/assets/...js": const jN="9.23.3" Это позволило отсортировать все CVE под данную версию. Уязвимостей было обнаружено полно, но в рамках этого поста хочу акцентировать внимание на ключевой, которую обнаружил сам, — загрузка любых файлов в админскую Библиотеку файлов без аутентификации + раскрытие списка файлов на эндпоинте /files. Получить доступ к любому файлу можно, зная его ID. После загрузки файлу автоматически присваивается идентификатор, и он становится доступен по публичному URL вида /assets/<ID>. ▎ Риски: ➡️Загрузка вредоносного ПО. Злоумышленник может поместить исполняемые файлы или скрипты, что при их запуске приведет к компрометации системы; ➡️Фишинговые атаки от имени компании с помощью публичных ссылок /assets/<ID>; ➡️Доступны все файлы в "Библиотеке файлов" без аутентификации: невозможность конфиденциально хранить документы и прочую чувствительную информацию для компании; ➡️А также другие риски в имеющихся уязвимостях, речи о которых в данном посте нет. ▎ Рекомендации по устранению уязвимостей: ✅Ограничить публичный доступ к конечной точки загрузки файлов — требовать аутентификацию и авторизацию для загрузок; ✅Валидировать содержимое файлы по проверке сигнатуры (MIME, magic bytes); ✅Ограничить типы и расширения файлов. Явно запрещать исполняемые форматы (например, .exe, .bat, .sh, .php и т.п.) и другие нежелательные форматы. Разрешать строго только необходимых типов по белому списку; ✅Закрыть доступ к конечной точке /files для неавторизованных пользователей; ✅Обновить версию Directus — решит множество проблем разом. ▎ Для пентестеров, обнаруживших Directus в проде: ➡️1) Первым делом определите версию ПО; ➡️2) С имеющейся версией пробуйте эксплуатировать ряд CVEшек. Ссылки на списки оставил в конце поста; ➡️3) Обязательно проверьте наличие GraphQL со включённой интроспекцией. Мне также попались alias flood, мутация без аутентификации и т.д. Часть уязвимостей в списках CVE эксплуатируется только при наличии сессии — это отличный кейс для серого ящика. На этом проекте я как раз работал по методикам чёрного и серого ящика. UPD. Оказывается, это не уязвимость в самой коробке, а просто мисконфиг на проекте, допускающий загрузку файлов без аутентификации. 🔗 Ссылка на список CVE Directus в Snyk 🔗 Ссылка на список CVE Directus в GitHub 🔗 Ссылка на список CVE Directus в GitLab #кейс #материал
1.6K
просмотров
3026
символов
Да
эмодзи
Да
медиа

Другие посты @hackerbiker

Все посты канала →
😈 Нашёл 0-day... почти Недавно на проекте по пентесту было — @hackerbiker | PostSniper