Раскрытие директорий в ЛС. Часть 2

Безопасность LiveStreet CMS
Понедельник — день хороший. За окном мокрый снег и дождь, ну а LiveStreet CMS Guide вещает о проблемах с безопасностью в LiveStreet CMS.

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

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

ОПИСАНИЕ

1. Потенциальному злоумышленнику необходима обязательная активная регистрация на сайте.
2. Необходимо из кода страницы получить ключ безопасности ЛС
3. Сформировать специальный GET-запрос на сервер:

http://site.com/ajax/preview/topic/?security_ls_key=YOUR_SECURITY_KEY&topic_type=topic&topic_title[]=megusta


Результатом станет вывод предупреждения уровня e_warning:

Warning: strip_tags() expects parameter 1 to be string, array given in /home/webmaster/www/site.com/www/classes/actions/ActionAjax.class.php on line 978

где webmaster — имя пользователя на сервере.

РЕШЕНИЕ

В /classes/actions/ActionAjax.class.php после 971 строки добавить код:


/*
  prevent hacking
*/
if (!is_string (getRequest ('topic_title'))) {
  $this -> Message_AddErrorSingle ($this -> Lang_Get ('system_error'), $this -> Lang_Get ('error'));
  return;
}
2 комментария
Роман
Проверил в 1.0.1 выводит Hacking attemp!
Роман
Моя ошибка, ошибся в ключе.
Действительно выводит webmaster!
Спасибо за фикс!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.