Множественные уязвимости в последних версиях CMS 1С-Битрикс. Видео атаки16.01.2017 11:48. Битрикс уязвимости 2017


Множественные уязвимости в последних версиях CMS 1С-Битрикс. Видео атаки / СоХабр

В своей работе по обеспечению ИБ сайтов, мы исследуем проблемы безопасности популярных в России систем управления веб-проектами. CMS 1С-Битрикс – является лидером в этой области, поэтому этой системе уделяется повышенное внимание.

Для актуального на сегодня исследования безопасности, была выбрана демо версия интернет-магазина, работающего на CMS 1С-Битрикс.

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

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Взлом и нарушение информационной целостности сторонних продуктов является уголовно наказуемым деянием. Адрес лаборатории «1С-Битрикс: Управление сайтом»: http://bitrixlabs.ru. Не внося никаких изменений в процесс инсталляции, был «развернут» демо интернет-магазин, работающий под управлением 1С-Битрикс: Управление сайтом 16.5.4 по адресу: http://1071lab.bitrixlabs.ru/

Первым делом, было принято решение обновить решения до последней версии. После установки обновления (1С-Битрикс Решение «Современный интернет-магазин» версии 16.5.3), было начато исследование безопасности предложенного сайта.

Безопасность публичной части сайта «коробки» не вызывала нареканий и ранее, поэтому основное внимание было уделено административному разделу исследуемого сайта.

Множественные XSS

Наибольшее количество уязвимостей кода, позволяющих эксплуатацию непостоянных XSS атак были обнаружены в разделе «Дополнительные поля» административного раздела сайта:Рабочий стол → Настройки → Пользователи → Список пользователей → Дополнительные поля → Настройки поля Адрес:

http://1071lab.bitrixlabs.ru/bitrix/admin/userfield_edit.php

В этом разделе, система предлагает создавать пользовательские поля для следующих типов данных: «Видео», «Привязка к элементам highload-блоков», «Строка», «Целое число», «Число», «Дата со временем», «Дата», «Да/Нет», «Файл», «Список», «Привязка к разделам инф. блоков», «Привязка к элементам инф. блоков», «Шаблон», «Опрос», «Содержимое ссылки».

Уязвимыми для XSS атак обнаружены поля формы для создания типов данных «Видео» и «Список».

Форма:

<form method="POST" action="/bitrix/admin/userfield_edit.php?lang=ru" enctype="multipart/form-data" name="post_form">Уязвимые поля для типа данных «Видео»

Поле input, вариант проверки возможности эксплуатации XSS:

"><script>alert(document.cookie)</script>
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:</textarea><script>alert(document.cookie)</script>
10 Дополнительные переменные SETTINGS[FLASHVARS]
11 Дополнительные переменные Silverlight: SETTINGS[SILVERVARS]
Уязвимое поле для типа данных «Список»

Поле input, вариант проверки возможности эксплуатации XSS:

"><script>alert(document.cookie)</script>
12 Подпись при отсутствии значения: SETTINGS[CAPTION_NO_VALUE]
На действия администраторов сайта (входящих в группу «Администраторы [1]») фильтр проактивной защиты Битрикс не распространяется, поэтому эксплуатация XSS атаки возможна без каких-либо ограничений.

Предполагая вопрос по поводу получения данных «защищенной» http-only cookie PHPSESSID: данные этой cookie не требуется для успешной эксплуатации атаки. Приведенный ниже пример успешной эксплуатации связки XSS + CSRF на «1С-Битрикс: Управление сайтом» подтверждает факт того, что использование http-only cookie нельзя рассматривать как полноценную защиту от XSS атак.

Эксплуатация CSRF атаки.

В процессе проведенного исследования, мы обратили внимание на возможность получения CSRF токенов, в разделе настроек пользователей (в т.ч. администраторов) системы: Административный раздел сайта: Рабочий стол → Настройки → Пользователи → Список пользователей Адрес сайта: (на момент тестирования) http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php?lang=ru&ID=1. К примеру, в случае смены пароля, или каких иных учетных данных администратора, данные отправляются на обработчик следующим образом:POST /bitrix/admin/user_edit.php?ID=1〈=ru HTTP/1.1 Host: 1071lab.bitrixlabs.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php?lang=ru&ID=1 Cookie: PHPSESSID=fdtc1nha7vd6fsgq9spuih4na0; BITRIX_SM_SOUND_LOGIN_PLAYED=Y; BITRIX_SM_GUEST_ID=1; BITRIX_SM_LAST_VISIT=13.01.2017+08%3A14%3A53; BITRIX_SM_SALE_UID=a44218257184b130c660695f7132ea02; BITRIX_CONVERSION_CONTEXT_s1=%7B%22ID%22%3Anull%2C%22EXPIRE%22%3A1484351940%2C%22UNIQUE%22%3A%5B%22sale_payment_add_day%22%5D%7D Connection: keep-alive Content-Type: multipart/form-data; boundary=---------------------------81949277201 Content-Length: 9588 -----------------------------81949277201 Content-Disposition: form-data; name="autosave_id" 20247bf0249c12c0e2f15effa95c29d52 -----------------------------81949277201 Content-Disposition: form-data; name="TITLE" -----------------------------81949277201 Content-Disposition: form-data; name="NAME" Bitrix -----------------------------81949277201 Content-Disposition: form-data; name="LAST_NAME" Team -----------------------------81949277201 Content-Disposition: form-data; name="SECOND_NAME" -----------------------------81949277201 Content-Disposition: form-data; name="EMAIL" [email protected] -----------------------------81949277201 Content-Disposition: form-data; name="LOGIN" admin -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD_CONFIRM" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="XML_ID" --- Множество различных данных --- -----------------------------81949277201 Content-Disposition: form-data; name="sessid" aa4c42ead8583afbd067d0409d1b25b0 Единственными валидируемыми данными (полагаю, что это и есть CSRF токены) для этого запроса являются:

«autosave_id» и «sessid», которые элементарно получить с помощью JS:

В качестве примера, можно привести «тестирование» на XSS, вышеописанных полей.

"><script>alert(phpVars['bitrix_sessid'])</script>"><script>alert(document.getElementsByName('autosave_id')[0].value)</script>Для того, чтобы взломать сайт на 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 также никуда не делись.Уязвимости устранены, выпущены обновления. Детали обновлений в конце поста.

К примеру, эксплуатация вышеописанной угрозы возможна через уязвимые поля раздела: «Создать курс валют» → «Настройки курса» по адресу:http://1071lab.bitrixlabs.ru/bitrix/admin/currency_rate_edit.php?lang=ru&filter=Y&set_filter=Y Уязвимыми к XSS являются следующие поля формы:

<form method="POST" action="" name="rate_edit">
N Название поля name
1 Номинал RATE_CNT
2 Курс RATE
Реализация самой атаки в реакции 1С-Битрикс: Управление сайтом 16.5.8:

Видео по теме:

Видео лучше смотреть в «полный» экран.

Вопросы по конструкции XSS атаки

Способов эксплуатаций XSS атак множество. Техники их проведения и конструкции подробно описаны во множестве статей, которые легко найти в Сети.

Что касаемо предложенной атаки, то для ее успешной эксплуатации придется решить один вопрос с токеном sessid, защищающего форму. Этот вопрос решаем.

В качестве примера, для версий платформы, предлагаемых в виртуальной лаборатории 1С-Битрикс, это значение можно получить запросом: http://1028lab.bitrixlabs.ru/bitrix/components/bitrix/pull.request/ajax.php (1028lab.bitrixlabs.ru – новый адрес предоставленного к тестированию ресурса)

Ответ будет выглядеть следующим образом:

{'BITRIX_SESSID':'47f51fa0d098862e588033cdc8d39388','ERROR':'SESSION_ERROR'}

Существуют и иные способы получения этого токена. Все зависит от конкретного ресурса, сервера, его настроек и т.п.

Предвосхищая вопросы по CORS 'Access-Control-Allow-Origin' или Сross-Origin Framing – в этой статье, как и в комментариях, эти вопросы обсуждаться не будут, как и дальнейшее обсуждение конструкции полноценной атаки.

Основной целью этой статьи является обеспечение безопасности сайтам на платформе 1C-Битрикс, а не создание полноценной инструкции по их взлому.

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

Разбирая инциденты, мы обнаружили вышеописанные проблемы безопасности платформы 1С-Битрикс.

Защита от вышеописанной XSS + CSRF атаки

Компания Битрикс не приветствует модификацию системных файлов платформы, поэтому единственным вариантом защиты, может стать ограничение доступа по IP к файлам, расположенным в директориях /bitrix/admin/.

Понимая, что такой «радикальный» способ защиты может быть применим далеко не ко всем сайтам, вторым вариантом можно рассмотреть ограничение доступа к /bitrix/admin/. путем установки дополнительной парольной пары по типу Basic Authentication

Заключение

Обнаруженная проблема – является максимальной угрозой для сайтов, созданных на платформе «1С-Битрикс: Управление сайтом».

Эксплуатация XSS атаки, в случае ее грамотного исполнения, гарантирует взлом практически любого сайта, работающего под управлением CMS 1С-Битрикс последних версий.

Эксплуатация XSS атаки в связке с CSRF позволяет:

— изменять любые учетные данные доступа пользователей сайта — создавать новых пользователей сайта, с различными привилегиями — изменять привилегии существующих пользователей сайта

В отдельных случаях, особенно для ресурсов с недостаточным уровнем защиты на уровне сервера, возможна эксплуатация CSRF в чистом виде, без ХSS. Кроме того, вышеописанная атака делает обычную XSS (к примеру, в строке поиска, что часто встречается у сайтов на 1С-Битрикс) максимальной угрозой безопасности сайта.

Резюме

1. Не оставляйте открытым доступ к авторизации административного раздела сайта.2. Обновляйте ядро платформы 1С-Битрикс, специалисты компании устраняют уязвимости по мере их обнаружения.3. Хотя бы раз в год проводите аудит безопасности ваших интернет проектов, для предотвращения взлома и атак.

Разбираться с последствиями взлома всегда сложнее и затратнее, чем предупредить его.

Внимание!

Компания 1С-Битрикс оперативно выпустила обновления, в которых устранена вышеописанная угроза безопасности.
Настоятельно рекомендуем установить следующие модули:
На 17.01.2017 года угроза безопасности, представленная в этой статье устранена.

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

sohabr.net

Проверена безопасность кода (статический анализ уязвимостей)

19.02.2018

Проходя монитор качества Вы не прошли тест "Проверена безопасность кода (статический анализ уязвимостей)", найдено столько потенциальных проблем.

Смотрим какие файлы с какими угрозами нашла система. Для этого нажимаем на кнопку "Подробный отчет" и в открывшемся окне, изучаем список уязвимостей.

Здесь указано в каком файле на какой строчке есть уязвимость. А справа кнопка вопроса, нажимая на которую Вам система подробно подскажет, как ее исправить.

В моем случае - это Межсайтовый скриптинг (XSS). В пояснении указано, что уязвимость возникает тогда, когда данные, принятые от пользователя, выводятся в браузер без надлежащей фильтрации. Уязвимость может быть использована для изменения вида HTML страниц уязвимого сайта в контексте браузера целевого пользователя, похищения COOKIE данных браузера целевого пользователя, с последующим внедрением в его сессию, под его учетной записью.Как защищаться, Использовать htmlspecialcharsbx. 

Что такое htmlspecialcharsbx.

В PHP уже есть htmlspecialchars которая предназначена для преобразования спец символов в html-сущности. С выходом PHP версии 5.4 в этой функции поменялось значение третьего параметра по умолчанию. Третий параметр - это кодировка строки, которая по умолчанию стала кодировкой UTF-8.

Но в битрикс, если передавать строку с нелатинскими символами в иной кодировке, не передавая параметр кодировки, то функция возвращала пустую строку. 

Поэтому разработчики добавили новую функцию под названием htmlspecialcharsbx в главный модуль начиная с версии с 12-й версии битрикса. Таким образом, если константа BX_UTF была определена перед обращением к функции, то будет использоваться кодировка UTF-8 в ином случае ISO-8859-1.

Как проверить определена константа BX_UTF?

Заходим в файл dbconn.php по пути <Ваш_сайт>/bitrix/php_interface/

Ее наличие показывает, что сайт работает в кодировке UTF-8.

Как исправить такую уязвимость.

В отчете написано, где она находится.

Открываем файлы из отчета и в каждом находим строку с уязвимостью.

У меня строка 38, а в 440 уже идет не защищенный вывод. Можно прописать функцию htmlspecialcharsbx или там или там.

Я укажу на 38 строке.

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

Уязвимостей больше нет.

site-ontop.ru

Множественные уязвимости в последних версиях CMS 1С-Битрикс. Видео атаки

В своей работе по обеспечению ИБ сайтов, мы исследуем проблемы безопасности популярных в России систем управления веб-проектами. CMS 1С-Битрикс — является лидером в этой области, поэтому этой системе уделяется повышенное внимание.

Для актуального на сегодня исследования безопасности, была выбрана демо версия интернет-магазина, работающего на CMS 1С-Битрикс.

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

Адрес лаборатории »1С-Битрикс: Управление сайтом»: http://bitrixlabs.ru. Не внося никаких изменений в процесс инсталляции, был «развернут» демо интернет-магазин, работающий под управлением 1С-Битрикс: Управление сайтом 16.5.4 по адресу: http://1071lab.bitrixlabs.ru/

Первым делом, было принято решение обновить решения до последней версии. После установки обновления (1С-Битрикс Решение «Современный интернет-магазин» версии 16.5.3), было начато исследование безопасности предложенного сайта.

Безопасность публичной части сайта «коробки» не вызывала нареканий и ранее, поэтому основное внимание было уделено административному разделу исследуемого сайта.

Множественные XSS

Наибольшее количество уязвимостей кода, позволяющих эксплуатацию непостоянных XSS атак были обнаружены в разделе «Дополнительные поля» административного раздела сайта: Рабочий стол → Настройки → Пользователи → Список пользователей → Дополнительные поля → Настройки поля Адрес:

http://1071lab.bitrixlabs.ru/bitrix/admin/userfield_edit.php

В этом разделе, система предлагает создавать пользовательские поля для следующих типов данных: «Видео», «Привязка к элементам 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 токенов, в разделе настроек пользователей (в т.ч. администраторов) системы: Административный раздел сайта: Рабочий стол → Настройки → Пользователи → Список пользователей Адрес сайта: (на момент тестирования) http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php? lang=ru&ID=1. К примеру, в случае смены пароля, или каких иных учетных данных администратора, данные отправляются на обработчик следующим образом: POST /bitrix/admin/user_edit.php?ID=1&lang=ru HTTP/1.1 Host: 1071lab.bitrixlabs.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php?lang=ru&ID=1 Cookie: PHPSESSID=fdtc1nha7vd6fsgq9spuih4na0; BITRIX_SM_SOUND_LOGIN_PLAYED=Y; BITRIX_SM_GUEST_ID=1; BITRIX_SM_LAST_VISIT=13.01.2017+08%3A14%3A53; BITRIX_SM_SALE_UID=a44218257184b130c660695f7132ea02; BITRIX_CONVERSION_CONTEXT_s1=%7B%22ID%22%3Anull%2C%22EXPIRE%22%3A1484351940%2C%22UNIQUE%22%3A%5B%22sale_payment_add_day%22%5D%7D Connection: keep-alive Content-Type: multipart/form-data; boundary=---------------------------81949277201 Content-Length: 9588 -----------------------------81949277201 Content-Disposition: form-data; name="autosave_id" 20247bf0249c12c0e2f15effa95c29d52 -----------------------------81949277201 Content-Disposition: form-data; name="TITLE" -----------------------------81949277201 Content-Disposition: form-data; name="NAME" Bitrix -----------------------------81949277201 Content-Disposition: form-data; name="LAST_NAME" Team -----------------------------81949277201 Content-Disposition: form-data; name="SECOND_NAME" -----------------------------81949277201 Content-Disposition: form-data; name="EMAIL" [email protected] -----------------------------81949277201 Content-Disposition: form-data; name="LOGIN" admin -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD_CONFIRM" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="XML_ID" --- Множество различных данных --- -----------------------------81949277201 Content-Disposition: form-data; name="sessid" aa4c42ead8583afbd067d0409d1b25b0 Единственными валидируемыми данными (полагаю, что это и есть CSRF токены) для этого запроса являются:

«autosave_id» и «sessid», которые элементарно получить с помощью JS:

В качестве примера, можно привести «тестирование» на XSS, вышеописанных полей.

">">Для того, чтобы взломать сайт на CMS 1С-Битрикс, эксплуатируя XSS+CSRF, достаточно сделать вектором атаки запрос, который, к примеру, изменит учетные данные доступа администратора сайта, или добавит нового, созданного атакующим.

Для подтверждения вышеописанного способа атаки на сайт, мы создали «боевой» JS скрипт, эксплуатирующий недостатки в разработке системы, и протестировали его работоспособность атаки на практике, в виртуальной лаборатории 1С-Битрикс.

Скрипт успешно «отработал», поставленную перед ним задачу. Итогом работы стала смена имя пользователя, пароля и почты администратора сайта. Авторизация в административной части «нового» администратора прошла успешно.

Вектором атаки является обычный POST XMLHttpRequest к /bitrix/admin/user_edit.php.

По понятным причинам, POC по эксплуатации вышеописанной техники атак на сайты, работающих под управлением »1С-Битрикс: Управление сайтом» в статье предоставлен не будет.

Вся информация по вышеописанной проблеме безопасности (включая вектор атаки) была передана в компанию Битрикс 19 сентября 2016 года. На 16 января 2016 года, уязвимости административного раздела CMS 1С-Битрикс версии 16.5.4 не устранены.

Дополнение:

На сегодняшний день, виртуальная лаборатория 1С-Битрикс предлагает к тестированию решения на CMS 1С-Битрикс 16.5.4. Ядро платформы в виртуальной лаборатории 1С-Битрикс, путем нехитрых манипуляций, можно обновить до версии 16.5.8.

В редакции 1С-Битрикс: Управление сайтом 16.5.8 вышеописанные XSS устранены, но проблемы безопасности, особенно в плане эксплуатации CSRF атаки, остались прежними. Проблемы с XSS также никуда не делись.

К примеру, эксплуатация вышеописанной угрозы возможна через уязвимые поля раздела: «Создать курс валют» → «Настройки курса» по адресу: http://1071lab.bitrixlabs.ru/bitrix/admin/currency_rate_edit.php? lang=ru&filter=Y&set_filter=Y Уязвимыми к XSS являются следующие поля формы:

N Название поля name
1 Номинал RATE_CNT
2 Курс RATE
Реализация самой атаки в реакции 1С-Битрикс: Управление сайтом 16.5.8 осталась прежней.

Видео по теме:

Видео лучше смотреть в «полный» экран.

Вопросы по конструкции XSS атаки

Способов эксплуатаций XSS атак множество. Техники их проведения и конструкции подробно описаны во множестве статей, которые легко найти в Сети.

Что касаемо предложенной атаки, то для ее успешной эксплуатации придется решить один вопрос с токеном sessid, защищающего форму. Этот вопрос решаем.

В качестве примера, для версий платформы, предлагаемых в виртуальной лаборатории 1С-Битрикс, это значение можно получить запросом: http://1028lab.bitrixlabs.ru/bitrix/components/bitrix/pull.request/ajax.php (1028lab.bitrixlabs.ru — новый адрес предоставленного к тестированию ресурса)

Ответ будет выглядеть следующим образом:

{'BITRIX_SESSID':'47f51fa0d098862e588033cdc8d39388','ERROR':'SESSION_ERROR'}

Существуют и иные способы получения этого токена. Все зависит от конкретного ресурса, сервера, его настроек и т.п.

Предвосхищая вопросы по CORS 'Access-Control-Allow-Origin' или Сross-Origin Framing — в этой статье, как и в комментариях, эти вопросы обсуждаться не будут, как и дальнейшее обсуждение конструкции полноценной атаки.

Основной целью этой статьи является обеспечение безопасности сайтам на платформе 1C-Битрикс, а не создание полноценной инструкции по их взлому.

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

Разбирая инциденты, мы обнаружили вышеописанные проблемы безопасности платформы 1С-Битрикс.

Защита от вышеописанной XSS + CSRF атаки

Компания Битрикс не приветствует модификацию системных файлов платформы, поэтому единственным вариантом защиты, может стать ограничение доступа по IP к файлам, расположенным в директориях /bitrix/admin/.

Понимая, что такой «радикальный» способ защиты может быть применим далеко не ко всем сайтам, вторым вариантом можно рассмотреть ограничение доступа к /bitrix/admin/. путем установки дополнительной парольной пары по типу Basic Authentication

Заключение

Обнаруженная проблема — является максимальной угрозой для сайтов, созданных на платформе »1С-Битрикс: Управление сайтом».

Эксплуатация XSS атаки, в случае ее грамотного исполнения, гарантирует взлом практически любого сайта, работающего под управлением CMS 1С-Битрикс последних версий.

Эксплуатация XSS атаки в связке с CSRF позволяет:

— изменять любые учетные данные доступа пользователей сайта  — создавать новых пользователей сайта, с различными привилегиями  — изменять привилегии существующих пользователей сайта

В отдельных случаях, особенно для ресурсов с недостаточным уровнем защиты на уровне сервера, возможна эксплуатация CSRF в чистом виде, без ХSS. Кроме того, вышеописанная атака делает обычную XSS (к примеру, в строке поиска, что часто встречается у сайтов на 1С-Битрикс) максимальной угрозой безопасности сайта.

Резюме

1. Не оставляйте открытым доступ к авторизации административного раздела сайта.2. Обновляйте ядро платформы 1С-Битрикс, специалисты компании устраняют уязвимости по мере их обнаружения.3. Хотя бы раз в год проводите аудит безопасности ваших интернет проектов, для предотвращения взлома и атак.

Разбираться с последствиями взлома всегда сложнее и затратнее, чем предупредить его.

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

pcnews.ru

Множественные уязвимости в последних версиях CMS 1С-Битрикс. Видео атаки

image В своей работе по обеспечению ИБ сайтов, мы исследуем проблемы безопасности популярных в России систем управления веб-проектами. CMS 1С-Битрикс – является лидером в этой области, поэтому этой системе уделяется повышенное внимание.

Для актуального на сегодня исследования безопасности, была выбрана демо версия интернет-магазина, работающего на CMS 1С-Битрикс.

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

Адрес лаборатории «1С-Битрикс: Управление сайтом»: http://bitrixlabs.ru/ Не внося никаких изменений в процесс инсталляции, был «развернут» демо интернет-магазин, работающий под управлением 1С-Битрикс: Управление сайтом 16.5.4 по адресу: http://1071lab.bitrixlabs.ru/ Первым делом, было принято решение обновить решения до последней версии: После установки обновления (1С-Битрикс Решение «Современный интернет-магазин» версии 16.5.3), было начато исследование безопасности предложенного сайта. Безопасность публичной части сайта «коробки» не вызывала нареканий и ранее, поэтому основное внимание было уделено административному разделу исследуемого сайта.

Множественные XSS

Наибольшее количество уязвимостей кода, позволяющих эксплуатацию непостоянных XSS атак были обнаружены в разделе «Дополнительные поля» административного раздела сайта: Рабочий стол -> Настройки -> Пользователи -> Список пользователей -> Дополнительные поля -> Настройки поляАдрес: http://1071lab.bitrixlabs.ru/bitrix/admin/userfield_edit.php

В этом разделе, система предлагает создавать пользовательские поля для следующих типов данных: «Видео», «Привязка к элементам highload-блоков», «Строка», «Целое число», «Число», «Дата со временем», «Дата», «Да/Нет», «Файл», «Список», «Привязка к разделам инф. блоков», «Привязка к элементам инф. блоков», «Шаблон», «Опрос», «Содержимое ссылки».

Уязвимыми для XSS атак обнаружены поля формы для создания типов данных «Видео» и «Список». Форма:

<form method="POST" action="/bitrix/admin/userfield_edit.php?lang=ru" enctype="multipart/form-data" name="post_form"> Уязвимые поля для типа данных «Видео» Поле input, вариант проверки возможности эксплуатации XSS: "><script>alert(document.cookie)</script>
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: </textarea><script>alert(document.cookie)</script>
10 Дополнительные переменные SETTINGS[FLASHVARS]
11 Дополнительные переменные Silverlight: SETTINGS[SILVERVARS]
Уязвимое поле для типа данных «Список» Поле input, вариант проверки возможности эксплуатации XSS: "><script>alert(document.cookie)</script>
12 Подпись при отсутствии значения: SETTINGS[CAPTION_NO_VALUE]
На действия администраторов сайта (входящих в группу «Администраторы [1]») фильтр проактивной защиты Битрикс не распространяется, поэтому эксплуатация XSS атаки возможна без каких-либо ограничений.

Предполагая вопрос по поводу получения данных «защищенной» http-only cookie PHPSESSID: данные этой cookie не требуется для успешной эксплуатации атаки.

Приведенный ниже пример успешной эксплуатации связки XSS CSRF на «1С-Битрикс: Управление сайтом» подтверждает факт того, что использование http-only cookie нельзя рассматривать как полноценную защиту от XSS атак.

Эксплуатация CSRF атаки.

В процессе проведенного исследования, мы обратили внимание на возможность получения CSRF токенов, в разделе настроек пользователей (в т.ч. администраторов) системы: Административный раздел сайта: Рабочий стол -> Настройки -> Пользователи -> Список пользователей Адрес сайта: (на момент тестирования) http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php?lang=ru&ID=1

К примеру, в случае смены пароля, или каких иных учетных данных администратора, данные отправляются на обработчик следующим образом:

POST /bitrix/admin/user_edit.php?ID=1&lang=ru HTTP/1.1 Host: 1071lab.bitrixlabs.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php?lang=ru&ID=1 Cookie: PHPSESSID=fdtc1nha7vd6fsgq9spuih4na0; BITRIX_SM_SOUND_LOGIN_PLAYED=Y; BITRIX_SM_GUEST_ID=1; BITRIX_SM_LAST_VISIT=13.01.2017 08%3A14%3A53; BITRIX_SM_SALE_UID=a44218257184b130c660695f7132ea02; BITRIX_CONVERSION_CONTEXT_s1=%7B%22ID%22%3Anull%2C%22EXPIRE%22%3A1484351940%2C%22UNIQUE%22%3A%5B%22sale_payment_add_day%22%5D%7D Connection: keep-alive Content-Type: multipart/form-data; boundary=---------------------------81949277201 Content-Length: 9588 -----------------------------81949277201 Content-Disposition: form-data; name="autosave_id" 20247bf0249c12c0e2f15effa95c29d52 -----------------------------81949277201 Content-Disposition: form-data; name="TITLE" -----------------------------81949277201 Content-Disposition: form-data; name="NAME" Bitrix -----------------------------81949277201 Content-Disposition: form-data; name="LAST_NAME" Team -----------------------------81949277201 Content-Disposition: form-data; name="SECOND_NAME" -----------------------------81949277201 Content-Disposition: form-data; name="EMAIL" [email protected] -----------------------------81949277201 Content-Disposition: form-data; name="LOGIN" admin -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD_CONFIRM" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="XML_ID" --- Множество различных данных --- -----------------------------81949277201 Content-Disposition: form-data; name="sessid" aa4c42ead8583afbd067d0409d1b25b0 Единственными валидируемыми данными (полагаю, что это и есть CSRF токены) для этого запроса являются: «autosave_id» и «sessid», которые элементарно получить с помощью JS:

В качестве примера, можно привести «тестирование» на XSS, вышеописанных полей.

"><script>alert(phpVars['bitrix_sessid'])</script> "><script>alert(document.getElementsByName('autosave_id')[0].value)</script> Для того, чтобы взломать сайт на CMS 1С-Битрикс, эксплуатируя XSS CSRF, достаточно сделать вектором атаки запрос, который, к примеру, изменит учетные данные доступа администратора сайта, или добавит нового, созданного атакующим.

Для подтверждения вышеописанного способа атаки на сайт, мы создали «боевой» JS скрипт, эксплуатирующий недостатки в разработке системы, и протестировали его работоспособность атаки на практике, в виртуальной лаборатории 1С-Битрикс.

Скрипт успешно «отработал», поставленную перед ним задачу. Итогом работы стала смена имя пользователя, пароля и почты администратора сайта. Авторизация в административной части «нового» администратора прошла успешно.

Вектором атаки является обычный POST XMLHttpRequest к /bitrix/admin/user_edit.php.

По понятным причинам, POC по эксплуатации вышеописанной техники атак на сайты, работающих под управлением «1С-Битрикс: Управление сайтом» в статье предоставлен не будет.

Вся информация по вышеописанной проблеме безопасности (включая вектор атаки) была передана в компанию Битрикс 19 сентября 2016 года.На 16 января 2016 года, уязвимости административного раздела CMS 1С-Битрикс версии 16.5.4 не устранены.

Дополнение:

На сегодняшний день, виртуальная лаборатория 1С-Битрикс предлагает к тестированию решения на CMS 1С-Битрикс 16.5.4. Ядро платформы в виртуальной лаборатории 1С-Битрикс, путем нехитрых манипуляций, можно обновить до версии 16.5.8.

В редакции 1С-Битрикс: Управление сайтом 16.5.8 вышеописанные XSS устранены, но проблемы безопасности, особенно в плане эксплуатации CSRF атаки, остались прежними.Проблемы с XSS также никуда не делись.

К примеру, эксплуатация вышеописанной угрозы возможна через уязвимые поля раздела: «Создать курс валют» -> «Настройки курса» по адресу: http://1071lab.bitrixlabs.ru/bitrix/admin/currency_rate_edit.php?lang=ru&filter=Y&set_filter=Y

Уязвимыми к XSS являются следующие поля формы:

<form method="POST" action="" name="rate_edit">
N Название поля name
1 Номинал RATE_CNT
2 Курс RATE
Реализация самой атаки в реакции 1С-Битрикс: Управление сайтом 16.5.8 осталась прежней.

Видео по теме:

Видео лучше смотреть в «полный» экран.

Вопросы по конструкции XSS атаки

Способов эксплуатаций XSS атак множество. Техники их проведения и конструкции подробно описаны во множестве статей, которые легко найти в Сети.

Что касаемо предложенной атаки, то для ее успешной эксплуатации придется решить один вопрос с токеном sessid, защищающего форму.

Этот вопрос решаем. В качестве примера, для версий платформы, предлагаемых в виртуальной лаборатории 1С-Битрикс, это значение можно получить запросом: http://1028lab.bitrixlabs.ru/bitrix/components/bitrix/pull.request/ajax.php (1028lab.bitrixlabs.ru – новый адрес предоставленного к тестированию ресурса)

Ответ будет выглядеть следующим образом: {'BITRIX_SESSID':'47f51fa0d098862e588033cdc8d39388','ERROR':'SESSION_ERROR'}

Существуют и иные способы получения этого токена. Все зависит от конкретного ресурса, сервера, его настроек и т.п. Предвосхищая вопросы по CORS 'Access-Control-Allow-Origin' или Сross-Origin Framing – в этой статье, как и в комментариях, эти вопросы обсуждаться не будут, как и дальнейшее обсуждение конструкции полноценной атаки.

Основной целью этой статьи является обеспечение безопасности сайтам на платформе 1C-Битрикс, а не создание полноценной инструкции по их взлому.

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

Защита от вышеописанной XSS CSRF атаки

Компания Битрикс не приветствует модификацию системных файлов платформы, поэтому единственным вариантом защиты, может стать ограничение доступа по IP к файлам, расположенным в директориях /bitrix/admin/.

Понимая, что такой «радикальный» способ защиты может быть применим далеко не ко всем сайтам, вторым вариантом можно рассмотреть ограничение доступа к /bitrix/admin/. путем установки дополнительной парольной пары по типу Basic Authentication

Заключение

Обнаруженная проблема – является максимальной угрозой для сайтов, созданных на платформе «1С-Битрикс: Управление сайтом».

Эксплуатация XSS атаки, в случае ее грамотного исполнения, гарантирует взлом практически любого сайта, работающего под управлением CMS 1С-Битрикс последних версий.

Эксплуатация XSS атаки в связке с CSRF позволяет: — изменять любые учетные данные доступа пользователей сайта — создавать новых пользователей сайта, с различными привилегиями — изменять привилегии существующих пользователей сайта

В отдельных случаях, особенно для ресурсов с недостаточным уровнем защиты на уровне сервера, возможна эксплуатация CSRF в чистом виде, без ХSS.

Кроме того, вышеописанная атака, делает обычную XSS (к примеру, в строке поиска, что часто встречается у сайтов на 1С-Битрикс) максимальной угрозой безопасности сайта.

Резюме

1. Не оставляйте открытым доступ к авторизации административного раздела сайта. 2. Обновляйте ядро платформы 1С-Битрикс, специалисты компании устраняют уязвимости по мере их обнаружения. 3. Хотя бы раз в год проводите аудит безопасности ваших интернет проектов, для предотвращения взлома и атак.

Разбираться с последствиями взлома всегда сложнее и затратнее, чем предупредить его.

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

Показать текст

www.ucnews.ru

БДУ - Уязвимости

Описание уязвимости Уязвимость модуля bitrix.mpbuilder системы управления веб-проектами 1С-Битрикс существует из-за недостаточного ограничения имени пути к каталогу. Эксплуатация уязвимости может позволить нарушителю, действующему удалённо, внедрить и открыть произвольный локальный файл путём добавления символов ".." к имени директории admin/bitrix.mpbuilder_step2.php
Вендор ООО «1С-Битрикс»
Наименование ПО 1С-Битрикс
Версия ПО
Тип ПО Прикладное ПО информационных систем
Операционные системы и аппаратные платформы
  • Сообщество свободного программного обеспечения Linux . x64
  • Сообщество свободного программного обеспечения Linux . x86
  • Microsoft Corp. Windows . x64
  • Microsoft Corp. Windows . x86
Тип ошибки Неверное ограничение имени пути к каталогу с ограниченным доступом («Обход пути»)
Идентификатор типа ошибки
Класс уязвимости Уязвимость кода
Дата выявления 17.12.2015
Базовый вектор уязвимости
Уровень опасности уязвимости Высокий уровень опасности (базовая оценка CVSS 2.0 составляет 9)
Возможные меры по устранению уязвимости

Обновление программного обеспечения до версии 1.0.12 или более новой

Статус уязвимости Подтверждена производителем
Наличие эксплойта Данные уточняются
Способ эксплуатации Данные уточняются
Способ устранения Данные уточняются
Информация об устранении Уязвимость устранена
Ссылки на источники
Идентификаторы других систем описаний уязвимостей
Прочая информация -

bdu.fstec.ru

Множественные уязвимости в последних версиях CMS 1С-Битрикс с видео атаки. Каталог социальных сетей :: Будь в СЕТИ!

Для актуального на сегодня исследования безопасности, была выбрана демо версия интернет-магазина, работающего на CMS 1С-Битрикс.

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

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Взлом и нарушение информационной целостности сторонних продуктов является уголовно наказуемым деянием.

Адрес лаборатории «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 (скрытое поле) 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 осталась прежней.

Видео по теме:

keep-intouch.ru

Хабрахабр

В своей работе по обеспечению ИБ сайтов, мы исследуем проблемы безопасности популярных в России систем управления веб-проектами. CMS 1С-Битрикс – является лидером в этой области, поэтому этой системе уделяется повышенное внимание.

Для актуального на сегодня исследования безопасности, была выбрана демо версия интернет-магазина, работающего на CMS 1С-Битрикс.

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

Адрес лаборатории «1С-Битрикс: Управление сайтом»: http://bitrixlabs.ru. Не внося никаких изменений в процесс инсталляции, был «развернут» демо интернет-магазин, работающий под управлением 1С-Битрикс: Управление сайтом 16.5.4 по адресу: http://1071lab.bitrixlabs.ru/ Первым делом, было принято решение обновить решения до последней версии. После установки обновления (1С-Битрикс Решение «Современный интернет-магазин» версии 16.5.3), было начато исследование безопасности предложенного сайта.

Безопасность публичной части сайта «коробки» не вызывала нареканий и ранее, поэтому основное внимание было уделено административному разделу исследуемого сайта.

Множественные XSS

Наибольшее количество уязвимостей кода, позволяющих эксплуатацию непостоянных XSS атак были обнаружены в разделе «Дополнительные поля» административного раздела сайта:Рабочий стол → Настройки → Пользователи → Список пользователей → Дополнительные поля → Настройки поля Адрес:

http://1071lab.bitrixlabs.ru/bitrix/admin/userfield_edit.php

В этом разделе, система предлагает создавать пользовательские поля для следующих типов данных: «Видео», «Привязка к элементам highload-блоков», «Строка», «Целое число», «Число», «Дата со временем», «Дата», «Да/Нет», «Файл», «Список», «Привязка к разделам инф. блоков», «Привязка к элементам инф. блоков», «Шаблон», «Опрос», «Содержимое ссылки».

Уязвимыми для XSS атак обнаружены поля формы для создания типов данных «Видео» и «Список».

Форма:

<form method="POST" action="/bitrix/admin/userfield_edit.php?lang=ru" enctype="multipart/form-data" name="post_form">Уязвимые поля для типа данных «Видео»

Поле input, вариант проверки возможности эксплуатации XSS:

"><script>alert(document.cookie)</script>
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:</textarea><script>alert(document.cookie)</script>
10 Дополнительные переменные SETTINGS[FLASHVARS]
11 Дополнительные переменные Silverlight: SETTINGS[SILVERVARS]
Уязвимое поле для типа данных «Список»

Поле input, вариант проверки возможности эксплуатации XSS:

"><script>alert(document.cookie)</script>
12 Подпись при отсутствии значения: SETTINGS[CAPTION_NO_VALUE]
На действия администраторов сайта (входящих в группу «Администраторы [1]») фильтр проактивной защиты Битрикс не распространяется, поэтому эксплуатация XSS атаки возможна без каких-либо ограничений.

Предполагая вопрос по поводу получения данных «защищенной» http-only cookie PHPSESSID: данные этой cookie не требуется для успешной эксплуатации атаки. Приведенный ниже пример успешной эксплуатации связки XSS + CSRF на «1С-Битрикс: Управление сайтом» подтверждает факт того, что использование http-only cookie нельзя рассматривать как полноценную защиту от XSS атак.

Эксплуатация CSRF атаки.

В процессе проведенного исследования, мы обратили внимание на возможность получения CSRF токенов, в разделе настроек пользователей (в т.ч. администраторов) системы: Административный раздел сайта: Рабочий стол → Настройки → Пользователи → Список пользователей Адрес сайта: (на момент тестирования) http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php?lang=ru&ID=1. К примеру, в случае смены пароля, или каких иных учетных данных администратора, данные отправляются на обработчик следующим образом:POST /bitrix/admin/user_edit.php?ID=1&lang=ru HTTP/1.1 Host: 1071lab.bitrixlabs.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: http://1071lab.bitrixlabs.ru/bitrix/admin/user_edit.php?lang=ru&ID=1 Cookie: PHPSESSID=fdtc1nha7vd6fsgq9spuih4na0; BITRIX_SM_SOUND_LOGIN_PLAYED=Y; BITRIX_SM_GUEST_ID=1; BITRIX_SM_LAST_VISIT=13.01.2017+08%3A14%3A53; BITRIX_SM_SALE_UID=a44218257184b130c660695f7132ea02; BITRIX_CONVERSION_CONTEXT_s1=%7B%22ID%22%3Anull%2C%22EXPIRE%22%3A1484351940%2C%22UNIQUE%22%3A%5B%22sale_payment_add_day%22%5D%7D Connection: keep-alive Content-Type: multipart/form-data; boundary=---------------------------81949277201 Content-Length: 9588 -----------------------------81949277201 Content-Disposition: form-data; name="autosave_id" 20247bf0249c12c0e2f15effa95c29d52 -----------------------------81949277201 Content-Disposition: form-data; name="TITLE" -----------------------------81949277201 Content-Disposition: form-data; name="NAME" Bitrix -----------------------------81949277201 Content-Disposition: form-data; name="LAST_NAME" Team -----------------------------81949277201 Content-Disposition: form-data; name="SECOND_NAME" -----------------------------81949277201 Content-Disposition: form-data; name="EMAIL" [email protected] -----------------------------81949277201 Content-Disposition: form-data; name="LOGIN" admin -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="NEW_PASSWORD_CONFIRM" admin12345 -----------------------------81949277201 Content-Disposition: form-data; name="XML_ID" --- Множество различных данных --- -----------------------------81949277201 Content-Disposition: form-data; name="sessid" aa4c42ead8583afbd067d0409d1b25b0 Единственными валидируемыми данными (полагаю, что это и есть CSRF токены) для этого запроса являются:

«autosave_id» и «sessid», которые элементарно получить с помощью JS:

В качестве примера, можно привести «тестирование» на XSS, вышеописанных полей.

"><script>alert(phpVars['bitrix_sessid'])</script>"><script>alert(document.getElementsByName('autosave_id')[0].value)</script>Для того, чтобы взломать сайт на CMS 1С-Битрикс, эксплуатируя XSS+CSRF, достаточно сделать вектором атаки запрос, который, к примеру, изменит учетные данные доступа администратора сайта, или добавит нового, созданного атакующим.

Для подтверждения вышеописанного способа атаки на сайт, мы создали «боевой» JS скрипт, эксплуатирующий недостатки в разработке системы, и протестировали его работоспособность атаки на практике, в виртуальной лаборатории 1С-Битрикс.

Скрипт успешно «отработал», поставленную перед ним задачу. Итогом работы стала смена имя пользователя, пароля и почты администратора сайта. Авторизация в административной части «нового» администратора прошла успешно.

Вектором атаки является обычный POST XMLHttpRequest к /bitrix/admin/user_edit.php.

По понятным причинам, POC по эксплуатации вышеописанной техники атак на сайты, работающих под управлением «1С-Битрикс: Управление сайтом» в статье предоставлен не будет.

Вся информация по вышеописанной проблеме безопасности (включая вектор атаки) была передана в компанию Битрикс 19 сентября 2016 года. На 16 января 2016 года, уязвимости административного раздела CMS 1С-Битрикс версии 16.5.4 не устранены.

Дополнение:

На сегодняшний день, виртуальная лаборатория 1С-Битрикс предлагает к тестированию решения на CMS 1С-Битрикс 16.5.4. Ядро платформы в виртуальной лаборатории 1С-Битрикс, путем нехитрых манипуляций, можно обновить до версии 16.5.8.

В редакции 1С-Битрикс: Управление сайтом 16.5.8 вышеописанные XSS устранены, но проблемы безопасности, особенно в плане эксплуатации CSRF атаки, остались прежними. Проблемы с XSS также никуда не делись.

К примеру, эксплуатация вышеописанной угрозы возможна через уязвимые поля раздела: «Создать курс валют» → «Настройки курса» по адресу:http://1071lab.bitrixlabs.ru/bitrix/admin/currency_rate_edit.php?lang=ru&filter=Y&set_filter=Y Уязвимыми к XSS являются следующие поля формы:

<form method="POST" action="" name="rate_edit">
N Название поля name
1 Номинал RATE_CNT
2 Курс RATE
Реализация самой атаки в реакции 1С-Битрикс: Управление сайтом 16.5.8 осталась прежней.

Видео по теме:

Видео лучше смотреть в «полный» экран.

Вопросы по конструкции XSS атаки

Способов эксплуатаций XSS атак множество. Техники их проведения и конструкции подробно описаны во множестве статей, которые легко найти в Сети.

Что касаемо предложенной атаки, то для ее успешной эксплуатации придется решить один вопрос с токеном sessid, защищающего форму. Этот вопрос решаем.

В качестве примера, для версий платформы, предлагаемых в виртуальной лаборатории 1С-Битрикс, это значение можно получить запросом: http://1028lab.bitrixlabs.ru/bitrix/components/bitrix/pull.request/ajax.php (1028lab.bitrixlabs.ru – новый адрес предоставленного к тестированию ресурса)

Ответ будет выглядеть следующим образом:

{'BITRIX_SESSID':'47f51fa0d098862e588033cdc8d39388','ERROR':'SESSION_ERROR'}

Существуют и иные способы получения этого токена. Все зависит от конкретного ресурса, сервера, его настроек и т.п.

Предвосхищая вопросы по CORS 'Access-Control-Allow-Origin' или Сross-Origin Framing – в этой статье, как и в комментариях, эти вопросы обсуждаться не будут, как и дальнейшее обсуждение конструкции полноценной атаки.

Основной целью этой статьи является обеспечение безопасности сайтам на платформе 1C-Битрикс, а не создание полноценной инструкции по их взлому.

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

Разбирая инциденты, мы обнаружили вышеописанные проблемы безопасности платформы 1С-Битрикс.

Защита от вышеописанной XSS + CSRF атаки

Компания Битрикс не приветствует модификацию системных файлов платформы, поэтому единственным вариантом защиты, может стать ограничение доступа по IP к файлам, расположенным в директориях /bitrix/admin/.

Понимая, что такой «радикальный» способ защиты может быть применим далеко не ко всем сайтам, вторым вариантом можно рассмотреть ограничение доступа к /bitrix/admin/. путем установки дополнительной парольной пары по типу Basic Authentication

Заключение

Обнаруженная проблема – является максимальной угрозой для сайтов, созданных на платформе «1С-Битрикс: Управление сайтом».

Эксплуатация XSS атаки, в случае ее грамотного исполнения, гарантирует взлом практически любого сайта, работающего под управлением CMS 1С-Битрикс последних версий.

Эксплуатация XSS атаки в связке с CSRF позволяет:

— изменять любые учетные данные доступа пользователей сайта — создавать новых пользователей сайта, с различными привилегиями — изменять привилегии существующих пользователей сайта

В отдельных случаях, особенно для ресурсов с недостаточным уровнем защиты на уровне сервера, возможна эксплуатация CSRF в чистом виде, без ХSS. Кроме того, вышеописанная атака делает обычную XSS (к примеру, в строке поиска, что часто встречается у сайтов на 1С-Битрикс) максимальной угрозой безопасности сайта.

Резюме

1. Не оставляйте открытым доступ к авторизации административного раздела сайта.2. Обновляйте ядро платформы 1С-Битрикс, специалисты компании устраняют уязвимости по мере их обнаружения.3. Хотя бы раз в год проводите аудит безопасности ваших интернет проектов, для предотвращения взлома и атак.

Разбираться с последствиями взлома всегда сложнее и затратнее, чем предупредить его.

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

habrahabr.net


Prostoy-Site | Все права защищены © 2018 | Карта сайта