Информационная безопасность компьютерных систем и защита конфиденциальных данных
SecuRRity.Ru » Статьи » Межсайтовый скриптинг (XSS) в DataLife Engine
Статьи

Межсайтовый скриптинг (XSS) в DataLife Engine

автор: Administrator | 4 марта 2009, 02:41 | Просмотров: 10327
теги: САЙТ, ОПАСНОСТЬ, xss, МЕЖСАЙТОВЫЙ, СКРИПТИНГ, уязвимый



Мы все думали, что DataLife Engine является идеальной системой, не имеет никаких уязвимостей, а администраторы могут использовать с большим удовольствием все функции этой системы, убеждены, что эта CMS является непобедимой.

Я тоже так думал, что DLE вообще неуязвимая. Но несколько дней назад, во время проверки уязвимостей в моем модуле, я был очень неприятно удивлен тем, что нашел, а нашел я - XSS уязвимость, с помощью которого можно поместить специальный HTML код в Заголовок, в краткую или полную новость.
Не проверял все версии, но по мою мнению эту уязвимость можно найти во всех версиях DataLife.

К счастью, не смотря на то, что это активная XSS, куки не могут быть украдены так легко, как кажется. Ведь в движке используется несколько особенные функций, которые защищают куки, чтобы не были украдены. НО, я сказал что "куки не могут быть украдены так легко", а это не значит, что получить их невозможно.

Получит хакер куки или нет, зависит только до какого предела он готов пойти, насколько внимательны администраторы и на каком сервере находится сайт.

Наиболее подвержены опасности уязвимости и вероятность сталкиваться с серьезными проблемами, являются сайты, где новости публикуются на сайте без модерации, а также где администраты и/или модераторы не очень внимательны.

Так как с помощью этого кода, можно вставить на сайте невидимый IFRAME, высока вероятность того, что те, кто имеют право публиковать (без модерации) и/или редактировать новости на сайте, захотят воспользоваться этой возможностью для того, чтобы зарабатывать легкие деньги, продавая IFRAME трафик.

Также можно перенаправлять посетителей на другой сайт(фейк), и если они не будут внимательны, очень большая вероятность того что хакер получит их пароли.

Но гораздо хуже то, что злоумышленник может использовать XSS чтобы заразить пользователей, которые посещают уязвимую страничку.

Он может указать URL страницы/файла на которой может находиться опасный код, и при загрузке страницы уязвимого сайта, вредоносный файл будет загружаться с другого сервера.

Я считаю, что это критическая уязвимость, потому что хакер, используя эту уязвимость, может принести большой ущерб администратору сайта.

Конечно, подробнее об уязвимость не буду писать так как, думаю, начнется большой хаос, если все узнают что это за код…

А для того чтобы устранить эту уязвимость, самый легкий способ, это:
в \engine\classes\, открыть parse.class.php, найти:
var $tagBlacklist = array ('applet',

и заменить на
var $tagBlacklist = array ('applet', 'object',

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

Другой способ еще не нашел и к сожалению, на данный момент единственное чем могу помочь, это рекомендовать вам чтобы вы были внимательнее и более тщательно изучили исходный код вашего сайта. А может быть, администрация dle-news.ru уже готовит патч...

Автор:
Кондураке Виктор
Обратная связь

Информация


Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.