Утечка конфиденциальной информации через .gitignore
Этичный ХакерВступление
В этой статье рассказывается о Git и показан пример типичной неправильной конфигурации.
Общие сведения
При работе с Git, когда вы пишете git push, он автоматически отправляет все изменения, сделанные в каталоге вашего проекта, в репозиторий Git.
Однако иногда разработчики не хотят, чтобы все файлы отправлялись в репозиторий, потому что некоторые из них могут содержать конфиденциальные данные, такие как учетные данные для входа, или, возможно, файл слишком велик для отправки или не нужен в репозитории. В этом случае разработчик будет использовать .gitignore, чтобы git не отслеживал изменения в этих файлах или каталогах.
Как это работает: разработчик создает текстовый файл с именем .gitignore (без расширения), который сохраняется в корне репозитория. Каждая строка .gitignore - это шаблон для файлов или каталогов, которые они не хотят отправлять в репозиторий. При этом отсутствие должной защиты такого файла может привести к серьезным проблемам для компании или организации.
Обнаружение этой проблемы
Если разрешены инструменты перебора файлов и каталогов, вы можете использовать dirsearch или любой другой инструмент с надежным списком слов.
Но если автоматические инструменты не разрешены, вы можете просто перейти на https://example.com/.gitignore или другие аналогичные пути, такие как .git/config, .git/HEAD, .git/logs/HEAD, .git/index
На следующем снимке экрана показан пример общедоступного .gitignore.
Анализируя пути и копаясь в файлах, я обнаружил файл JSON, в котором подробно описаны учетные данные для входа в базу данных MySQL.
Удаленное подключение к Mysql было включено, и я смог войти в базу данных, используя эти учетные данные.
Исправление
Устранение проблемы было довольно простым, нужно было просто изменить права доступа к файлу и убедиться, что он не является общедоступным.
Заключение
Часто скрытый контент приложения становится доступен по причине человеческого фактора, что негативно сказывается на безопасности системы или организации. По подобным причинам я рекомендую уделять больше времени разведке и исследованию различных конечных точек сайта для большего понимания цели и поиска интересных мест.