XSS уязвимость в Image Assist

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

Аватар пользователя VladSavitsky VladSavitsky 1 сентября 2007 в 1:11

Речь идёт о Image Assist 5.x-1.4.

Описание модуля:
Модуль позволяет пользователям загружать и вставлять inline-изображения в посты. Автоматически создаётся значок "Добавить изображение" под текстовой областью по вашему выбору.
Зависит от: Image

Clicking the link opens an image browsing window, displaying all images that have been uploaded through the image module. Images can be filtered by ownership or taxonomy terms (categories). New images can also be uploaded in the Image assist window. Clicking on an image displays a properties page where attributes such as caption, size, and alignment can be set before you click Insert to add the image to the post.

Если выбрать в настройках модуля параметр "Метод вставки по-умолчанию"="HTML code", то в текстовую область вставляется тег < IMG >, для которого указывается полный путь к изображению. Таким образом пользователь может изменить путь и подставить адрес файла с JS.
Причём этот код может находиться на другом сервере.
Враждебный код будет выполняться при просмотре статьи в браузере клиента.

Кроме того, для нормальной работы такого варианта вставки в фильтрах ввода нужно разрещить тег < img >.
(Форматы ввода. Вкладка "Настройка". Фильтрация HTML. Нужно добавить в фильтр "< img > < span >")
Это позволяет любому пользователю, которому доступен этот фильтр вставить HTML код, который будет подгружать враждебный код.
О том, какие теги разрешены, выводится подсказка под тектовым полем и тег IMG является потенциально опасным.

Использовать такой метод вставки можно только, если на сайте ограниченное число авторов и им можно доверять.

Для того, чтобы защититься от этой уязвимости и использовать модуль нужно:

Из документации:
"The link behavior can be overriden when inserting images by users with the proper permissions, but these defaults will still be used for everyone else."

Итак нужно:
1. Выставить по-умолчанию метод вставки изображений: "Filter tag".
2. Запретить ролям, которым нельзя доверять менять этот метод:
Страница "Контроль доступа"
access advanced options - включает управление методом вставки (нельзя разрешать всем, а только избранным - XSS) и ссылкой для изображения.

Комментарии