Suicide
14.06.2019, 23:10
Вдвижке для создания web-форумов MyBB (https://mybb.com/) выявлено несколько уязвимостей (https://blog.ripstech.com/2019/mybb-stored-xss-to-rce/), позволяющих организовать многоступенчатую атаку для выполнения произвольного PHP-кода на сервере. Проблемы устранены в выпуске MyBB 1.8.21 (http://blog.mybb.com/2019/06/10/mybb-1-8-21-released-security-maintenance-release/).
Первая уязвимость присутствует в модулях публикации и отправки приватных сообщений, и позволяет осуществить подстановку JavaScript-кода (XSS), который будет выполнен в браузере при просмотре публикации или полученного сообщения. Подстановка JavaScript возможна из-за некорректного преобразования в HTML вложенных BBCode. В частности, тег "" преобразуются в iframe с передачей указанных в BBCode атрибутов. При этом "[video]" обрабатывается отдельно от остальных BBCode, что позволяет в имени видео использовать ещё один BBCode "", который будет раскрыт после формирования iframe и из-за перекрытия двойных кавычек может подставить атрибут onLoad для подключения своего обработчика события.
Например, можно указать ссылку на видео в форме
[video=youtube]youtube.com/xyzhttp://onload=evilCode()
и она при обработке BBCode "[video]" будет преобразована в тег
‹iframe src="youtube.com/xyzhttp://onload=evilCode()"›‹/iframe›
а после обработки остальных BBCode в
‹iframe src="youtube.com/xyz‹a href="http://onload=evilCode()"›.."›‹/iframe›
Соответственно двойная кавычка в 'href="' закрывает атрибут "src" и onLoad обрабатывается в контексте iframe.
Вторая уязвимость позволяет при наличии прав администратора форума сохранить в файловую систему web-сервера PHP-скрипт и организовать его выполнение. Проблема присутствует в коде управления стилями для активной темы оформления, который позволяет генерировать новые CSS-файлы. Подобные файлы сохраняются с добавлением расширения ".css", но размер поля в БД с именем файла ограничен 30 символами. Соответственно можно назвать файл "26символов.php.css". При записи в БД будут отрезаны лишние символы и в конечном счёте сохранится имя "26символов.php". Далее через панель администратора форума можно сгенерировать новый стиль и файл будет записан в каталог "cache" с расширением php.
Для проведения атаки злоумышленник может направить администратору форума специально оформленное сообщение или опубликовать подобное сообщение форуме. При просмотре данного сообщения в браузере в рамках текущего сеанса в форуме и с правами просматривающего сообщение пользователя будет выполнен заданный атакующим JavaScript-код. Если сообщение просмотрел администратор, то для выполнения PHP-кода в контексте привилегированного сеанса эксплуатируется вторая уязвимость.
12.06.2019
http://www.opennet.ru/opennews/art.shtml?num=50859
Первая уязвимость присутствует в модулях публикации и отправки приватных сообщений, и позволяет осуществить подстановку JavaScript-кода (XSS), который будет выполнен в браузере при просмотре публикации или полученного сообщения. Подстановка JavaScript возможна из-за некорректного преобразования в HTML вложенных BBCode. В частности, тег "" преобразуются в iframe с передачей указанных в BBCode атрибутов. При этом "[video]" обрабатывается отдельно от остальных BBCode, что позволяет в имени видео использовать ещё один BBCode "", который будет раскрыт после формирования iframe и из-за перекрытия двойных кавычек может подставить атрибут onLoad для подключения своего обработчика события.
Например, можно указать ссылку на видео в форме
[video=youtube]youtube.com/xyzhttp://onload=evilCode()
и она при обработке BBCode "[video]" будет преобразована в тег
‹iframe src="youtube.com/xyzhttp://onload=evilCode()"›‹/iframe›
а после обработки остальных BBCode в
‹iframe src="youtube.com/xyz‹a href="http://onload=evilCode()"›.."›‹/iframe›
Соответственно двойная кавычка в 'href="' закрывает атрибут "src" и onLoad обрабатывается в контексте iframe.
Вторая уязвимость позволяет при наличии прав администратора форума сохранить в файловую систему web-сервера PHP-скрипт и организовать его выполнение. Проблема присутствует в коде управления стилями для активной темы оформления, который позволяет генерировать новые CSS-файлы. Подобные файлы сохраняются с добавлением расширения ".css", но размер поля в БД с именем файла ограничен 30 символами. Соответственно можно назвать файл "26символов.php.css". При записи в БД будут отрезаны лишние символы и в конечном счёте сохранится имя "26символов.php". Далее через панель администратора форума можно сгенерировать новый стиль и файл будет записан в каталог "cache" с расширением php.
Для проведения атаки злоумышленник может направить администратору форума специально оформленное сообщение или опубликовать подобное сообщение форуме. При просмотре данного сообщения в браузере в рамках текущего сеанса в форуме и с правами просматривающего сообщение пользователя будет выполнен заданный атакующим JavaScript-код. Если сообщение просмотрел администратор, то для выполнения PHP-кода в контексте привилегированного сеанса эксплуатируется вторая уязвимость.
12.06.2019
http://www.opennet.ru/opennews/art.shtml?num=50859