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

Главные вкладки

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

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

Лучший ответ

Аватар пользователя protoftor protoftor 11 марта 2019 в 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 марта 2019 в 22:39

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

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

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

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

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

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

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

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

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

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

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

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