Уязвимость configuration.php Joomla к взлому изнутри

Файл, в котором хранятся основные настройки CMS Joomla 3 может быть прочитан любым способом из любого места сервера, на котором расположен сайт на этой популярной CMS-ке. Всё дело в том, что права на чтение configuration.php прописаны как 0644 или 0444 в зависимости от того, каким способом этот конфиг сохраняется на сервере. Последняя 4 в обозначении прав означает то, что любой скрипт, запущенный на сервере, в любом месте может прочитать этот файл!

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



А в конфиге хранятся в открытом виде имя базы данных, пользователь базы данных и его пароль к доступу в БД. Это прямой путь к тому, чтобы считав эти данные, залезть в БД сайта и прописать себе права администратора сайта. После того, как получены права админа, можно спокойно зайти в админку сайта и через Менеджер шаблона сайта написать любой скрипт, который будет запускаться уже с правами пользователя той директории, в которой расположены скрипты сайта.

Это может быть скрипт рассылки спама или скрипт размещения рекламы. И это всё цветочки в равнении с тем, что злоумышленник может просто удалить весь сайт и поставить редирект на тот ресурс, который посчитает нужным. И кому от этого станет веселее?

Как закрыть доступ к configuration.php из любого места на сервере

Можно конечно зайти на сервер по SSH и выставить права файлу 0440, но при обновлении конфига сайта, ядро Joomla снова выставит права на него 0444, и снова всё та же самая история с потенциальной угрозой взлома (если у кого-то есть доступ к какому-нибудь файлу на сервере, он обязательно доберётся и до файлов всего сайта с configuration.php с такими правами на чтение).

Итак, где выставляются права на configuration.php в ядре Joomla?

Эти права выставляются в файле компонента конфигурации в файлах ядра админки:

/administrator/components/com_config/model/application.php

Для того, чтобы закрыть эту дыру в уязвимости сайта на CMS Joomla нужно поменять права с 0644 на 0640 в 481 строке:

if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0640'))

0444 на 0440 в строке 501

if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0440'))

После этого либо зайти на сервер и выставить права на файл configuration.php 0440 с помощью команды chmod. Либо просто что-то поменять в основной конфигурации Joomla и пересохранить её (права при пересохранении выставятся автоматически с запретом на чтение любому пользователю, не являющемуся владельцем этого файла или не входящего в группу владельцев).

ВНИМАНИЕ!
Данное решение будет работать только до тех пор, пока вы не накатите обновление Joomla (пока разработчики не устранят эту дыру в безопасности CMS Joomla в исходниках, которые они прилежно перезаписывают каждый раз при обновлении.

Надеюсь, кому-то после прочтения стало спокойнее спать. =)

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню