Раскрытие директорий в ЛС

Безопасность LiveStreet CMS
Размышляя как-то о том, что директория engine в ЛС лишь частично закрыта извне, я подумал что это дает какие-то потенциальные возможности злоумышленнику. И сразу же был найден пробел в системе безопасности.

  • Уровень опасности: низкий
  • Тип: раскрытие имени пользователя (аккаунта) на сервере
  • Версии движка, которые подвержены данной опасности: все, начиная с LS 0.4

Вызов по прямой ссылке любого модуля из директории модулей ядра ЛС вызывает ошибку, которая раскрывает полный путь в файловой системе и имя аккаунта на сервере. Например, прямое обращение в модулю кеширования:

http://site.com/engine/modules/cache/Cache.class.php

В результате получаем ошибку не нахождения класса конфига (Config):

Fatal error: Class 'Config' not found in /home/username/public_html/engine/modules/cache/Cache.class.php on line 18

В ошибке высвечивается username — имя аккаунта на сервере.

Для некоторых модулей ошибка будет связана с не нахождением класса модуля (Module)

РЕШЕНИЕ

В каждый файл в /engine/modules/*/ после 1 строки вставить код:

// prevent hacking
if (!class_exists ('Config') or !class_exists ('Module')) die ('Slow down, cowboy!');

ИЛИ (рекомендуется)

Положить в директорию /engine/modules/ файл .htaccess с следующим содержимым:

Order Deny,Allow
Deny from all
1 комментарий
Роман
Проверил.
Выдает только:
<code>Ошибка сервера
На веб-сайте произошла ошибка при получении http://greecebaby.gr/engine/modules/cache/Cache.class.php. Веб-сайт может быть закрыт на обслуживание или настроен неправильно.
Вот несколько советов и рекомендаций:
Обновите эту страницу позже.
Ошибка HTTP 500 (Internal Server Error): При попытке сервера выполнить запрос возникла неожиданная ситуация.</code>

А после добавления .htaccess просто на хост перекидывает.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.