Адрес лаборатории «1С-Битрикс: Управление сайтом»: . Не внося никаких изменений в процесс инсталляции, был «развернут» демо интернет-магазин, работающий под управлением 1С-Битрикс: Управление сайтом 16.5.4 по адресу: Первым делом, было принято решение обновить решения до последней версии. После установки обновления (1С-Битрикс Решение «Современный интернет-магазин» версии 16.5.3), было начато исследование безопасности предложенного сайта.
Безопасность публичной части сайта «коробки» не вызывала нареканий и ранее, поэтому основное внимание было уделено административному разделу исследуемого сайта.
Множественные XSS
Наибольшее количество уязвимостей кода, позволяющих эксплуатацию непостоянных XSS атак были обнаружены в разделе «Дополнительные поля» административного раздела сайта: Адрес: В этом разделе, система предлагает создавать пользовательские поля для следующих типов данных: «Видео», «Привязка к элементам highload-блоков», «Строка», «Целое число», «Число», «Дата со временем», «Дата», «Да/Нет», «Файл», «Список», «Привязка к разделам инф. блоков», «Привязка к элементам инф. блоков», «Шаблон», «Опрос», «Содержимое ссылки».
Уязвимыми для XSS атак обнаружены поля формы для создания типов данных «Видео» и «Список».
Форма: Уязвимые поля для типа данных «Видео»
Поле input, вариант проверки возможности эксплуатации XSS: N Название поля name 1 Размер буфера в секундах SETTINGS[BUFFER_LENGTH] 2 Уровень громкости в процентах от максимального: SETTINGS[VOLUME] 3 Размеры (Ш х В, px) SETTINGS[WIDTH] 4 Размеры (Ш х В, px) SETTINGS[HEIGHT] 5 Цвет фона панели управления: SETTINGS[BGCOLOR] 6 Цвет элементов управления SETTINGS[COLOR] 7 Цвет эл. управления при наведении указателя мыши: SETTINGS[OVER_COLOR] 8 Цвет экрана: SETTINGS[SCREEN_COLOR] 9 id="bx_player_skin_input" (скрытое поле) SETTINGS[SKIN]
Поле textarea, вариант проверки возможности эксплуатации XSS: 10 Дополнительные переменные SETTINGS[FLASHVARS] 11 Дополнительные переменные Silverlight: SETTINGS[SILVERVARS]
Уязвимое поле для типа данных «Список»
Поле input, вариант проверки возможности эксплуатации XSS: 12 Подпись при отсутствии значения: SETTINGS[CAPTION_NO_VALUE]
На действия администраторов сайта (входящих в группу «Администраторы [1]») фильтр проактивной защиты Битрикс не распространяется, поэтому эксплуатация XSS атаки возможна без каких-либо ограничений.
Предполагая вопрос по поводу получения данных «защищенной» http-only cookie PHPSESSID: данные этой cookie не требуется для успешной эксплуатации атаки. Приведенный ниже пример успешной эксплуатации связки XSS + CSRF на «1С-Битрикс: Управление сайтом» подтверждает факт того, что использование http-only cookie нельзя рассматривать как полноценную защиту от XSS атак.
Эксплуатация CSRF атаки.
В процессе проведенного исследования, мы обратили внимание на возможность получения CSRF токенов, в разделе настроек пользователей (в т.ч. администраторов) системы: Адрес сайта: (на момент тестирования) . К примеру, в случае смены пароля, или каких иных учетных данных администратора, данные отправляются на обработчик следующим образом: Единственными валидируемыми данными (полагаю, что это и есть CSRF токены) для этого запроса являются:
«autosave_id» и «sessid», которые элементарно получить с помощью JS:
В качестве примера, можно привести «тестирование» на XSS, вышеописанных полей.
Для того, чтобы взломать сайт на CMS 1С-Битрикс, эксплуатируя XSS+CSRF, достаточно сделать вектором атаки запрос, который, к примеру, изменит учетные данные доступа администратора сайта, или добавит нового, созданного атакующим.
Для подтверждения вышеописанного способа атаки на сайт, мы создали «боевой» JS скрипт, эксплуатирующий недостатки в разработке системы, и протестировали его работоспособность атаки на практике, в виртуальной лаборатории 1С-Битрикс.
Скрипт успешно «отработал», поставленную перед ним задачу. Итогом работы стала смена имя пользователя, пароля и почты администратора сайта. Авторизация в административной части «нового» администратора прошла успешно.
Вектором атаки является обычный POST XMLHttpRequest к /bitrix/admin/user_edit.php.
По понятным причинам, POC по эксплуатации вышеописанной техники атак на сайты, работающих под управлением «1С-Битрикс: Управление сайтом» в статье предоставлен не будет.
Вся информация по вышеописанной проблеме безопасности (включая вектор атаки) была передана в компанию Битрикс 19 сентября 2016 года. На 16 января 2017 года, уязвимости административного раздела CMS 1С-Битрикс версии 16.5.4 не устранены.
Дополнение:
На сегодняшний день, виртуальная лаборатория 1С-Битрикс предлагает к тестированию решения на CMS 1С-Битрикс 16.5.4. Ядро платформы в виртуальной лаборатории 1С-Битрикс, путем нехитрых манипуляций, можно обновить до версии 16.5.8.
В редакции 1С-Битрикс: Управление сайтом 16.5.8 вышеописанные XSS устранены, но проблемы безопасности, особенно в плане эксплуатации CSRF атаки, остались прежними. Проблемы с XSS также никуда не делись.
К примеру, эксплуатация вышеописанной угрозы возможна через уязвимые поля раздела: «Создать курс валют» -> «Настройки курса» по адресу:
Уязвимыми к XSS являются следующие поля формы: N Название поля name 1 Номинал RATE_CNT 2 Курс RATE
Реализация самой атаки в реакции 1С-Битрикс: Управление сайтом 16.5.8 осталась прежней.
Видео по теме: