Что такое .DS_Store?
.DS_Store (Desktop Services Store) — это скрытый файл, создаваемый операционной системой macOS для хранения метаданных о папке. Он используется Finder для записи таких параметров, как расположение значков, порядок сортировки, выбранный вид (иконки, список и т.д.), фон папки и другие настройки интерфейса.
Информация, изложенная в статье, основана на моём личном опыте и практических наблюдениях. Однако формат и содержание файла .DS_Store могли изменяться с течением времени. Ранее этот файл мог содержать информацию о вложенных каталогах и файлах, однако, как уточнили специалисты, в текущих версиях macOS это уже не так. Тем не менее, в определённых ситуациях .DS_Store всё ещё может быть полезен для исследования структуры сайта.
Почему он появляется?
.DS_Store автоматически создаётся Finder'ом в любой папке, к которой пользователь macOS получил доступ через графический интерфейс. Это касается как локальных директорий, так и удалённых (например, через SMB, FTP или WebDAV).
Опасность .DS_Store
разглашение структуры директорий .
.DS_Store может содержать ссылки на файлы и директории, которые находятся в папке даже если они недоступны через веб-сервер. Это может дать злоумышленнику карту сайта и информацию о скрытых ресурсах.Утечка конфиденциальных данных:
Если в .DS_Store указаны пути к конфиденциальным файлам (например,admin/config.php
илиbackup.zip
), это может помочь злоумышленнику в поиске уязвимостей.Помощь в атаках на безопасность:
.DS_Store может упростить взлом сайта, так как злоумышленник получает информацию о структуре файлов и возможно даже о путях к чувствительным данным.
Почему он появляется на сайтах?
.DS_Store появление его на сайте:
Ошибка при загрузке файлов:
Разработчик использовал macOS для работы с проектом и случайно загрузил .DS_Store вместе с другими файлами на сервер.Автоматическая генерация:Если сервер поддерживает протоколы WebDAV, SMB или аналогичные, то .DS_Store может быть создан Finder'ом при доступе к папкам через macOS.
Недостаточная очистка:При разработке или деплое проекта .DS_Store не был исключён из файлов для загрузки.
Чем полезен для исследования в Bug Bounty?
Изучение структуры сайта:
.DS_Store позволяет узнать о файлах и папках, которые могут быть скрыты от обычных пользователей. Например, можно обнаружить:
Страницы администратора,
Резервные копии,
Временные файлы,
Конфигурационные файлы.Поиск уязвимостей:
Найдя .DS_Store исследователь может определить пути к файлам с конфиденциальной информацией или скрытые функции, интерфейсы сайта которые менее защищены .Автоматизация анализа:
С помощью инструмента который я разработал специально для этой статьи:
DsSScan при его помощи можно легко извлечь полезную информацию из .DS_Store и ускорить процесс анализа.
Как предотвратить появление .DS_Store?
Игнорирование файла при загрузке:
Настройте системы деплоя, чтобы .DS_Store не загружался на сервер. Например, добавьте его в .gitignore .Удаление перед загрузкой:
Используйте команды для поиска и удаления .DS_Store перед деплоем:find . -name ".DS_Store" -delete
Настройки в macOS:
Вы можете отключить создание .DS_Store в сетевых директориях, выполнив следующую команду:defaults write com.apple.desktopservices DSDontWriteNetworkStores true
Настройка сервера:
Добавьте правило в конфигурацию веб-сервера (например, Nginx или Apache), чтобы доступ к .DS_Store блокировался:Apache:
<Files ".DS_Store">
Require all denied
</Files>Nginx :
location ~ /\.DS_Store {
deny all;
access_log off;
log_not_found off;
}
Проверка безопасности :
Используйте инструменты для аудита безопасности, чтобы сканировать сервер на наличие .DS_Store и других чувствительных файлов.
Спасибо, что прочитали статью. Я буду признателен, если вы оставите комментарий, подпишитесь. Удачи вам в охоте и обеспечение безопасности вашего сайта! (Возможно, я что-то упустил, вы также можете дополнить статью своим комментарием).