Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.08.2020 14:47:43

Уязвимость в файле .env

Здравствуйте форумчане. Недавно столкнулся с проблемой. Получил письмо от некой организации OpenBugBounty. Там говорится что они нашли некую уязвимость под названием "Неправильный контроль доступа" на сайте. URL уязвимости http://mysite.ru/.env. Естественно при открытии данного урла я получаю ошибку что такая страница не найдена. Собственно вопрос в том какая тут может быть уязвимость?

Не в сети

#2 23.08.2020 15:01:42

Re: Уязвимость в файле .env

Письмо это разводка на деньги. А речь идёт о том, что файлы, начинающиеся на "." по идее не должны быть доступны через веб. И, вроде бы, у тебя они не доступны. Такие файлы могут содержать в себе ключи и пароли.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 23.08.2020 15:47:19

Re: Уязвимость в файле .env

по идее не должны быть доступны

Я просто оставлю это здесь: https://habr.com/ru/post/70330/

Не в сети

#4 24.08.2020 08:23:44

Re: Уязвимость в файле .env

Спасибо за ответы.
artoodetoo, я тоже подумал что это попахивает разводом, но решил уточнить.
Proger_XP, интересная статья, но я все равно не понимаю как эта уязвимость могла сработать. При обращении к странице \.svn я ведь получу то же сообщение что страница не найдена. Роутер ведь отсечет этот запрос.

Не в сети

#5 24.08.2020 12:18:16

Re: Уязвимость в файле .env

MadHatter роутер срабатывает только для тех файлов, для которых веб-сервер не нашёл соответствующего "статического" файла. Попробуй бросить в public что-нибудь "скрытое", т.е. с именем начинающимся с точки. Просто для спокойствия, а не потому что таинственный анонимус тебя попытался напугать.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#6 24.08.2020 19:22:26

Re: Уязвимость в файле .env

интересная статья, но я все равно не понимаю как эта уязвимость могла сработать. При обращении к странице \.svn я ведь получу то же сообщение что страница не найдена. Роутер ведь отсечет этот запрос.

artoodetoo прав:

роутер срабатывает только для тех файлов, для которых веб-сервер не нашёл соответствующего "статического" файла

Но соль проблемы глубже. Раньше в Subversion (это, можно считать, предшественник git) папки .svn создавались не в корне репозитория, как у .git, а в каждой подпапке. Каждая такая папка содержала интересные вещи типа истории и исходников. Соответственно, если у тебя сайт деплоится из Subversion, то в твоей папке public_html (или аналога) всегда лежала "скрытая" папка .svn. Это описанная в статье уязвимость.

С git и Laravel проблема как будто не актуальна, так как git не мусорит своими папками везде, а Laravel поделен на корень и на public_html, причем public_html это подпапка в корне и потому .git в ней нет. Однако даже в Laravel есть любители перепиливать пути так, чтобы корень сайта указывал на корень фреймворка, то бишь помещают public_html в корень. А теперь добавь к этому модную нынче тенденцию все деплоить из git (я не говорю, что это плохо), и привет - в корне лежит .git, где, в отличии от Subversion, которая хранила только верхний коммит, хранится ВСЯ история и ВСЕ исходники во ВСЕХ папках данного репозитория. (Если не используется shallow repository.)

Так что будь начеку. Я лично советую всегда помещать это правило в конфиг всех хостов nginx:

location ~ /\. {
  deny all;
}

Правда, это отключит и запросы ACME, так что если используется Let's Encrypt, то надо добавить и второе, пустое:

location ^~ /.well-known/ {
}

Не в сети

#7 25.08.2020 22:08:12

Re: Уязвимость в файле .env

Спасибо за ответы. Я понял, то есть как таковой тут проблемы нет.

Не в сети

Подвал раздела