Модуль Search уязвим к XSS атаке?

Аватар пользователя protoftor protoftor 10 марта в 22:36

Уважаемые коллеги, возник вопрос по xss- уязвимости модуля ядрa Друпал 7 Search РЕшил изучить XSS-атаки на сайте Hackware.ru, там в статье приведен простой способ проверки на эту уязвимость. Вставил в поле поиска на своем друпаловском сайте простейший код из этой статьи "/><script>alert(1)</script>, и убедился, что что вставленный код работает Получается, этот модуль уязвим против простейшей атаки xss! Что делать, есть ли альтернатива защищенная от этой напасти? Или, может быть патч какой посоветуете? Да, стоит стоит последня версия друпалд 7,64, ввсе модули обновлены.
Заранее спасибо.

0 Thanks

Лучший ответ

Аватар пользователя protoftor protoftor 11 марта в 15:34

Всем - большое спасибо, с учетом высказанных замечаний стал смотреть - в одном из блоков у меня юзалась переменная $GET['q']... Из-за нее все и было. Как только удалил ее - все в норму пришло. ВСе логично, в эту переменную попадает все из из адресной строки, что после адреса сайта идет. При xss атаке то , что вводится в форму поиска, попадает в адресную строку. А у меня в блоке было так: print rawurldecode(l('', $_GET['q'].'?theme=mukcbs_blind_thm', array('html'=>TRUE)));
ЭТО было удобно для слабовидящих, они могли на любой странице сайта сразу перейити в свою тему именно на этой странице, а не с главной начинать, но... БЕЗОПАСНОСТЬ ЕСС-НО ВАЖНЕЕ. КАк убрал эту $GET['q'] - уязвимость исчезла.
Впрочем, можно не удалять $GET['q'], а проверять ее preg_match на наличие тега "script"... Или не стоит с огнем играть?

Комментарии

Аватар пользователя Semantics Semantics 10 марта в 22:39

Скорее уязвима ваша тема оформления или была криво сделана темизация результатов поиска, что такой простой вектор и фурычит.

Аватар пользователя protoftor protoftor 11 марта в 13:07

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

Аватар пользователя Orion76 Orion76 10 марта в 22:51

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

Аватар пользователя protoftor protoftor 11 марта в 13:03

ну, вот мой сайт mukcbs.org, никаких самоделок в модулях. Тема своя, но к поиску даже не прикасался.

Аватар пользователя ivnish ivnish 11 марта в 6:35

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

Аватар пользователя protoftor protoftor 11 марта в 14:42

А об этом было в той статье на хакваре... В хроме есть встроенный блокировщик xss-атак. А идей, как можно поправить - нету?

Аватар пользователя Evgeny S Evgeny S 11 марта в 14:34

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

Аватар пользователя Evgeny S Evgeny S 11 марта в 14:56

Это рабочие сайты, светить тут не хочу по этичным причинам.
protoftor пробовали эту XSS повторить на чистом развернутом друпале?
Я сейчас попробовал - алерта нет.

Чтобы понять как исправить - в любом случае надо сайт смотреть изнутри.

Аватар пользователя protoftor protoftor 11 марта в 15:34

Всем - большое спасибо, с учетом высказанных замечаний стал смотреть - в одном из блоков у меня юзалась переменная $GET['q']... Из-за нее все и было. Как только удалил ее - все в норму пришло. ВСе логично, в эту переменную попадает все из из адресной строки, что после адреса сайта идет. При xss атаке то , что вводится в форму поиска, попадает в адресную строку. А у меня в блоке было так: print rawurldecode(l('', $_GET['q'].'?theme=mukcbs_blind_thm', array('html'=>TRUE)));
ЭТО было удобно для слабовидящих, они могли на любой странице сайта сразу перейити в свою тему именно на этой странице, а не с главной начинать, но... БЕЗОПАСНОСТЬ ЕСС-НО ВАЖНЕЕ. КАк убрал эту $GET['q'] - уязвимость исчезла.
Впрочем, можно не удалять $GET['q'], а проверять ее preg_match на наличие тега "script"... Или не стоит с огнем играть?

Аватар пользователя gun_dose gun_dose 11 марта в 17:21

Посмотрите апи, мануалы, код, где-то должна быть специальная функция, которая это дело чистит.