Много лет назад, когда только начинал заниматься сайтами, обнаружил "брешь" в шеред хостинге. Надеюсь, хостинги больше не допускают подобные ошибки в настройке серверов, поэтому опишу метод.
Если хотите взломать чей-то сайт, то вам запрещено читать дальше! Эта статья - не пособие для взлома, а наблюдение за небезопасными хостингами!
Речь пойдёт о шеред хостингах. Там на одном сервере может ютиться несколько десятков сайтов. На таких серверах у каждого пользователя (сайта) есть права доступа к файлам и папкам. Эти права распространяются на некоторые системные файлы. Поясню на примере.
Зайдём на шеред-хостинг по ssh. Перейдём в папку /var/log/. В этой папке хранятся разнообразные логи, в которых находятся сведения о запрашиваемых файлах.
Если на сервере установлен nginx, то скорее всего все запросы к сайту проходят через него. Поэтому откроем файл с названием "nginx.log". Если сервер настроен верно (безопасно), то доступ будет запрещён. Если нет, то увидим кучу строк лога вида:
ip - домен - [дата-время] GET/POST "путь_к_файлу_на_сайте" - "браузер клиента"
Если внимательно просмотреть файл, то можно обнаружить своих соседей по хостингу. Их "домены" будут в строках лога. Но нас больше интересует информация о файлах, которые запрошиваются. А точнее "путь_к_файлу_на_сайте".
Думаю, уже догадываетесь в чём состоит "уязвимость в логах". Владельцы сайтов часто хранят на хостингах много конфиденциальных статичных файлов. И что ещё страшнее, скачивают их по прямой ссылке. После такого действия в логе сервера остаётся путь, по которому был запрошен файл. По этому пути можно перейти ещё раз и скачать файл снова, если владелец не успел удалить файл с сервера.
К примеру, владелец сайта сделал бэкап базы данных. И сохранил его в ".tar" архиве (или в ".sql" формате), в корневой папке сайта. Пока это не является преступлением. Ведь только владелец сайта знает название файла. Поэтому только он сможет скачать файл, перейдя по прямой ссылке. Но как только он это сделает, в логах сервера появится путь к такому файлу. И файл можно будет загрузить через ту же ссылку.
Таким образом можно получить дамп базы, архив всех файлов сайта и т.п. Что может привести к взлому сайта.
Если приглядеться, в файле логов можно найти много конфиденциальной информации. Даже GET запросы с параметрами "login" и "password". Ведь есть очень старые и/или самописные CMS, у которых данные пользователей передаются GET запросами...
Как предотвратить беду?
Не должно быть общего лога сайтов, доступного всем пользователям на сервере. У каждого сайта должен быть свой файл/папка лога. Чтобы только владелец сайта мог открыть файл/папку с логами его сайта.
Не скачивайте важные файлы через прямые ссылки. Используйте шифрованные соединения (ssh/sftp) для скачивания бэкапов со своих сайтов. Никогда не оставляйте такие файлы на сервере, после того как скачали.
P.S.
Всё вышеописанное не является пособием для взлома сайтов. Не пытайтесь повторить. Любые попытки взлома преследуются по закону. Гоните прочь дурные мысли из своей головы.