Начинаю рассказывать об основных уязвимостях на сайтах.
Это будет несколько статей, так как уместить всё в одно будет очень сложно.
Я не претендую на оригинальность, я лишь хочу донести информацию до вас.
Многие уязвимости не считаются уязвимостями по тем или иным причинам.
Одни говорят, что эти уязвимости не причинят вреда, другие, что мало кто взламывает сайты.
Однако статистика говорит, что имея пару уязвимостей на сайте - шанс взлома сайта увеличивается на 50%.
Все директории наружу
Indexes или autoindex
При установке Apache никто не учитывает настройки по-умолчанию.
Так, если в директории нет индексного файла index.html или любого другого, который вы пропишете в DirectoryIndex.
То сервер отдает список файлов и директорий.
Выглядит это следующим образом
Да, уязвимость не кажется опасной. Но представьте, что вы продаете книги и загружаете их в директорию со сложными именами. А пользователь может легко найти и скачать все книги бесплатно.
Многие разработчики не учитывают данный момент и раскидывают файлы по директориям вида /downloads /uploads
Которые можно проверить простым перебором.
Так же многие администраторы любят добавлять в корень проекта бэкапы.
- /var/www/yandex.ru/backups/www_01012019.zip
- /var/www/yandex.ru/backups/mysql_01012019.zip
А с открытыми директориями не составит труда найти ваши бэкапы и скачать их.
В этот момент уязвимость становится критической, хотя на первый взгляд всё достаточно безопасно.
Кстати, недавно купил электронный перевод книги по Swift, а уже после обнаружил эту уязвимость.
Конечно же сообщил владельцу.
Nginx
Nginx поступили правильно и отключили по-умолчанию настройку autoindex.
Если вы специально не включали эту директиву - у вас всё хорошо.
Но если вы нашли эту директиву у себя и вы её не ставили - немедленно убирайте или ставьте autoindex off.
Apache
Apache же решили, что нужно включить все опции сразу
Если вы используете .htaccess, то можете указать прямо в него:
Options All -Indexes
Данная строка отключит только одну директиву, оставив остальные по-умолчанию.
Но учтите, что перезапись директив может быть запрещено конфигурацией Apache. Директивой
AllowOverride
Поэтому, идеальным вариантом решения проблемы будет исправление конфигурации Apache.
Пример такой конфигурации apache2.conf:
<Directory /var/www/yandex.ru>
Options All -Indexes
</Directory>
Это запретит показывать список файлов для всей директории /var/www/yandex.ru
На этом всё.
Это была первая уязвимость о которой я хотел бы вам рассказать.
Я считаю, что она самая популярная.
Всем нулей и единиц!