Топ тупых лазеек для исследования конкурентов: .git для всех
Введение
Лазейки такого рода — чистая халатность разработчиков. Сколько уже говорили об этом, сколько писали. Все равно, даже большие компании совершают одни и те же ошибки. Давайте вспомним хотя бы Аэрофлот и Яндекс.
А всего-то можно с самого начала закрыть доступ ко всем файлам с точки и забыть об этом.
Репозиторий git в вебе
Пожалуй, одно из самого страшного и тупого что может произойти с проектом. Любой, кто знаком с GIT, сразу догадается, что с этим можно сделать. Проверить очень просто: введите в браузер http(s)://example.com/.git/config
, и если вы получили содержимое, то... ну вот, в принципе, и все, делаете wget --mirror
или берете любую поделку типа GitTools.
Получаете репозиторий с исходниками и историей коммитов. При такой квалификации команды разработки наверняка ещё и конфиги с паролями. Если же нет, то поиск уязвимостей будет намного проще. Только нужно ли оно вам? Только если задефейсить ради смеха.
Например, недавно меня попросили взглянуть на сайт заказа еды из сети суши ресторанов в Москве, и на 2й минуте просмотра я уже выкачивал их репозиторий.
После того, как выкачаем репозиторий, можно восстановить файлы. Вполне возможно, что вам хватит простого git reset --hard
. Давай посмотрим, что у нас там внутри. Но для начала сделаем копию tar -zcvf repo.tgz repo
, не хочу опять тратить 20 минут на выкачивание если что-то сломаю.
Хм, похоже, это Битрикс с кучей самописного кода сомнительного качества.
Ребята молодцы, защитили сервер на подключения только из под VPN, только вот сам ключ уже лежит для меня в репозитории, спасибо.
А вот и доступы к iiko, почему то мне стыдно за это.
Отлично, вот пароль от БД, директория с phpMyAdmin сразу же нашлась в .gitignore
, даже искать не придется...
Давайте попробуем поработать с iiko. У нас есть хост, логин, пароль и логика из полученных файлов. Выясняем, как получить авторизационный ключ.
Отлично, теперь можно поиграться с API iiko.
Спустя 40 минут (вы уж простите, репозиторий выкачивался 20) мы уже знаем всех клиентов, кол-во заказов, средний чек, зарплаты и многое другое. Намного эффективнее и точнее классического бизнес анализа, правда?
Итог
Из-за желания сэкономить на разработчиках — найм неквалифицированных кадров. Банальное раздолбайство на все самые простые правила разработки и безопасности. В итоге весь бизнес поставлен под угрозу. Статья получилась довольно скучной. Наверное, это самое глупое, что можно допустить в плане безопасности вашего продукта. Несмотря на это, я всегда начинаю с проверки доступности GIT, Mercurial, Docker Registry.