URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 102279
[ Назад ]

Исходное сообщение
"Новая критическая уязвимость в WordPress"

Отправлено opennews , 28-Апр-15 10:19 
Спустя несколько дней с момента устранения (http://www.opennet.ru/opennews/art.shtml?num=42098) прошлой уязвимости в  популярной системе управления web-контентом WordPress выявлена новая критическая уязвимость, которая как и прошлая проблема дает возможность осуществить подстановку JavaScript-кода в комментарий к заметкам в блогах. В настоящий момент проблема уже устранена в оперативно сформированном выпуске WordPress 4.2.1 (https://wordpress.org/news/2015/04/wordpress-4-2-1/), но информация об уязвимости была раскрыта (http://klikki.fi/adv/wordpress2.html) до исправления, т.е. потенциально любой сайт на базе актуальной версии WordPress мог быть атакован.

Метод атаки основан на том, что поле TEXT в MySQL не может превышать 64 Кб, в то время как лимит на размер комментария установлен в 66 тысяч символов. Если сообщение превышает данный размер, то хвост обрезается и в БД помещается лишь часть текста. Соответственно, можно добавить сообщение, размером чуть больше 64 Кб, в котором размещается HTML-тег с произвольным большим блоком текста внутри. Так как хвост будет обрезан тег останется разорван, что позволит обойти код чистки HTML-тегов в  WordPress. После отображения такого текста, закрытием тега послужат далее идущие теги интерфейса WordPress. Если размещённый таким образом комментарий просмотрит администратор блога, то в его браузере в контексте блога будет выполнен JavaScript, через который можно получить доступ к операциям в интерфейсе администратора и организовать выполнение PHP-кода на сервере путём загрузки плагина или редактирования темы оформления.

<center><iframe width="640" height="360" src="https://www.youtube.com/embed/OCqQZJZ1Ie4" frameborder="0" allowfullscreen></iframe></center>


URL: http://arstechnica.com/security/2015/04/27/just-released-wor.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=42117


Содержание

Сообщения в этом обсуждении
"Новая критическая уязвимость в WordPress"
Отправлено anonimous , 28-Апр-15 10:19 
Это просто праздник какой-то!

"Новая критическая уязвимость в WordPress"
Отправлено pkdr , 28-Апр-15 10:34 
Для вордпресса каждый день - такой "праздник".

"Новая критическая уязвимость в WordPress"
Отправлено anonymous , 28-Апр-15 10:43 
Вордпресс - это праздник, который всегда с тобой.

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 21:28 
Праздник каждый день :)

"Новая критическая уязвимость в WordPress"
Отправлено нонэйм , 28-Апр-15 10:23 
да уж, лучше использовать чистый html чем это..

"Новая критическая уязвимость в WordPress"
Отправлено pkdr , 28-Апр-15 10:42 
Чистый html - совершенно не годится. Текст на голом html будет очень легко читаться, причём посетитель может позволять себе такую возмутительную наглость, как выбрать нравящийся ему, а не дизайнеру шрифт, его цвет и размер. На голом html неудобно делать текст сайта в виде тонкого столбца в 500 пикселей на экране шириной в 2-4 тысячи пикселей. На голом html никак не сделать, чтобы во время чтения вылезло на передний план какое-нибудь очень важное изображение. Крайне неудобно делать весь текст переливающимся всеми мыслимыми цветами.
Ну и кому он нужен, чистый html?

"Новая критическая уязвимость в WordPress"
Отправлено Онотоле , 28-Апр-15 13:06 
Ммм, простыню текста раскинувшуюся на весь экран от левого края до правого удобно читать?

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 13:20 
CSS? Нет, никогда не слышал и слышать не желаю!

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 13:26 
не экран, а окно... думать надо головой покупая "экран" с соотношением от 16:9 и открывая там одно окно браузера на всю ширь...

"Новая критическая уязвимость в WordPress"
Отправлено playnet , 28-Апр-15 13:39 
> не экран, а окно... думать надо головой покупая "экран" с соотношением от
> 16:9 и открывая там одно окно браузера на всю ширь...

У меня так и есть. 16:9, 23" моник. На весь экран. И мне удобно.


"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 18:35 
> не экран, а окно... думать надо головой покупая "экран" с соотношением от
> 16:9 и открывая там одно окно браузера на всю ширь...

Так у нормальных сайтов "резиновая" верстка и они на весь экран как раз получаются.

И если что - мониторы с мало-мальски большой диагональю нынче почти все 16:9 как правило. А не нравится .. ну смотри в офисные 1280х1024, блин. "Зато 4:3" - единственное достоинство такого экспоната.


"Новая критическая уязвимость в WordPress"
Отправлено Vkni , 28-Апр-15 20:01 
> И если что - мониторы с мало-мальски большой диагональю нынче почти все
> 16:9 как правило. А не нравится .. ну смотри в офисные
> 1280х1024, блин. "Зато 4:3" - единственное достоинство такого экспоната.

Есть, кстати, 2048х1536, тоже 4:3.


"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 22:02 
> Есть, кстати, 2048х1536, тоже 4:3.

Хз, мне достойные внимания аппараты за разумные деньги в продаже не попадались. А так у меня 2560х1440 (вообще 16:10), к тому же IPS c нормальной цветопередачей и даже вполне разумным временем отклика. Очень приятный и довольно универсальный аппарат: и с графикой поработать, и кино посмотреть, и в игрушки побегать, и попрограммить - все на ура.

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

На самом деле я не понимаю такую принципиальность в 4:3 на больших мониторах. У человека поле зрения в ширину больше чем в высоту и монитор с подобным соотношением сторон очень логично вписывается в поле зрения.


"Новая критическая уязвимость в WordPress"
Отправлено Vkni , 28-Апр-15 22:27 
> Очень удобно на самом деле оказалось.

Для большого настольного дисплея широкий формат удобнее.

> На самом деле я не понимаю такую принципиальность в 4:3 на больших
> мониторах. У человека поле зрения в ширину больше чем в высоту
> и монитор с подобным соотношением сторон очень логично вписывается в поле
> зрения.

Уже 17-ти дюймовый ноут лучше не 4:3, а широкоформатный. Но вот на малых диагоналях широкоформатный монитор превращается в танковую щель. Поэтому, для текста на совсем крошечных ноутах лучше вообще квадратный монитор, на 12-15 дюймов - 4:3, дальше широкий формат.

Но у меня-то 15-ти дюймовый 4:3.

Более того, от размера монитора зависит и то, какой оконный менеджер стоит использовать. Например, на большом мониторе текст лучше не разворачивать во весь экран, а держать колонкой, окна не наслаиваются => лучше что-то вроде WindowMaker'а. На средних мониторах уже хорошо идут мозаичные WM, на маленьких - каждое окно на полный экран.


"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 29-Апр-15 20:06 
> так у меня 2560х1440 (вообще 16:10)

Вообще это 16:9. 16:10 — 2560х1600.


"Новая критическая уязвимость в WordPress"
Отправлено pkdr , 28-Апр-15 14:42 
> Ммм, простыню текста раскинувшуюся на весь экран от левого края до правого удобно читать?

Немного увеличенным шрифтом - вполне удобно. И у меня экран лёгким движением руки становится вертикальным.


"Новая критическая уязвимость в WordPress"
Отправлено Vkni , 28-Апр-15 20:02 
> Немного увеличенным шрифтом - вполне удобно. И у меня экран лёгким движением
> руки становится вертикальным.

Если экран - не совсем щель, то это даже лучше 4:3.


"Новая критическая уязвимость в WordPress"
Отправлено playnet , 28-Апр-15 13:38 
> На голом html неудобно делать текст сайта в виде тонкого столбца в 500 пикселей на экране шириной в 2-4 тысячи пикселей.

Табличная вестка же! Там это делается элементарно.


"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 10:26 
"поле TEXT в MySQL не может превышать 64 Кб, в то время как лимит на размер комментария установлен в 66 тысяч символов"

Я даже не знаю, как это прокомментировать.


"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 11:20 
ну ошиблись, сделать alter table, поменять TEXT на LONGTEXT и всё заработает или массив свой поменять на 63кб

"Новая критическая уязвимость в WordPress"
Отправлено Умник , 28-Апр-15 12:51 
Движок самдолжен запрашивать макс размер поля в БД

"Новая критическая уязвимость в WordPress"
Отправлено playnet , 28-Апр-15 13:42 
> Движок самдолжен запрашивать макс размер поля в БД

На каждый запрос клиента? Получать типы, размерности, связи и прочее? Этак мы до битрикса докатимся. Если и делать, то с кэшированием, хотя бы в админке, а лучше при обновлении версии/изменении модулей, и в конфиги. Тогда не будет провала в скорости для простых юзеров.


"Новая критическая уязвимость в WordPress"
Отправлено playnet , 28-Апр-15 13:44 
> Если и делать, то с кэшированием, хотя бы в админке

в смысле, перечитывать свойства базы при изменениях в админке, причём не во всех разделах, а только в тех, где есть шанс изменения структур данных.
Ну и кнопка force sync для ручных изменений.


"Новая критическая уязвимость в WordPress"
Отправлено Ilya Indigo , 28-Апр-15 19:47 
Какой LONGTEXT?
VARCHAR(xxx) уже давно как позволяет до нескольких мегабайт записывать с указанием ограничения в байтах.
TEXT-ом пользуются те, кто до сих пор в танке.
Но проблему это всё равно не решает, нужно при валидации самому следить чтобы текст был не пустым и не переваливал за установленное значение, что делается простым isset-ом.

"Новая критическая уязвимость в WordPress"
Отправлено йцу , 28-Апр-15 10:37 
> в то время как лимит на размер комментария установлен в 66 тысяч символов.

Сначала не понял откуда такое число, но

> The exploit works by posting some simple JavaScript code as a comment and then adding a massive amount of text—about 66,000 characters or more than 64 kilobytes worth.

Если я правильно понял, в самом WP никакого лимита нет вообще. Имеется в виду, что для размещения XSS достаточно 64k любого текста + пару k на сам эксплойт.

А вообще, имхо, предоставлять пользователям публичных ресурсов возможности HTML-разметки - это всегда опасная практика. Формат уже слишком сложный, чтобы можно было полагаться на всякие средства "очистики". Если прям необходимо дать возможность выделять текст "жирненьким", лучше встроить какой-нибудь markdown или bb-коды на худой конец.


"Новая критическая уязвимость в WordPress"
Отправлено Crazy Alex , 28-Апр-15 12:07 
Точнее, разметку можно (и нужно) делать HTML-подобной - такое большему числу людей понятно, но всё равно её полностью парсить и генерировать заново.

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 12:37 
html проще парсить, чем тот же markdown. Не говоря о textile.

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 11:05 
А все потому что мыскль.
В нормальной субд при превышении размера поля будет error и rollback.

Да, в мыскле тоже можно включить strict mode, но этого никто не делает - половина кода, написанного похапе-программистами, отвалится.


"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 13:08 
Какой флаг нужно вписать в sql-mode?  

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 13:49 
STRICT_ALL_TABLES

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 14:21 
У меня STRICT_TRANS_TABLES

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 16:56 
Если таблицы в InnoDB - сойдёт.

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 17:35 
TokuDB

"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 17:50 
Ну или так, TRANS_ - это для всех движков, которые Transactions = YES в SHOW ENGINES.

"Новая критическая уязвимость в WordPress"
Отправлено Онотоле , 28-Апр-15 13:09 
Если не 90%.

"Новая критическая уязвимость в WordPress"
Отправлено arisu , 28-Апр-15 11:59 
всё‐таки пицца оказалась не умнее сыра.

"Новая критическая уязвимость в WordPress"
Отправлено A.Stahl , 28-Апр-15 15:24 
Увы. Это, наверное, зелёная Жаба виновата. Давно пора было уволить.

"Новая критическая уязвимость в WordPress"
Отправлено vitalif , 28-Апр-15 14:46 
Да просто не надо полагаться на то, что в базе html типа "чистый" - нужно очищать ПОСЛЕ того, как берёшь из базы. Заодно получаешь защиту от просто подстановки яваскрипта через какую-нибудь дыру, которая позволяет текст записей менять.

Очищать кстати норм htmLawed'ом.

P.S: Я думал, что "критичная" - это выполнение кода, а тут XSS всего лишь... этих XSS'ов там по-моему на каждом углу.


"Новая критическая уязвимость в WordPress"
Отправлено Аноним , 28-Апр-15 18:40 
> P.S: Я думал, что "критичная" - это выполнение кода, а тут XSS
> всего лишь... этих XSS'ов там по-моему на каждом углу.

Нет, тут не XSS и не всего лишь, а возможность впихать свой JS, который при просмотре админом может лихо вкачать PHP shell на сервер и далее поиметь все и вся с правами пользователя под которым php крутился.

Это, конечно, многоходовочка, но с учетом массовости вордпресса - такое будет летать чартерными рейсами в самом обозримом будущем. Халявные шеллы нужны всем, так что пощады от хакерья не ждите.


"Новая критическая уязвимость в WordPress"
Отправлено Музыкант , 28-Апр-15 21:50 
Слушайте, а у меня идея: ставишь на localhost любой http сервер, на него загружаешь любой, какой угодно дырявый CMS (ну или делаешь сайт с нуля), а потом сделать такой скриптик, который скачивает его целиком с помощью чего-то вроде httrack в виде статических html файлов и заливает их на хостинг (само собой только те, котрые обновились). Правда комментарии в таком блоге оставлять не получится, но можно вынести их в отдельные страницы (типа как гостевые книги в старые времена, только для каждого поста). А порядком можно даже специально заточенный CMS запилить для этой цели, который генерировал бы реальные html файлы и заливал их на хостинг. А можно чтоб даже можно было выбрать, какие страницы превращать в 100% статические, а какие оставить динамическими.

"Новая критическая уязвимость в WordPress"
Отправлено Typography Nazi , 29-Апр-15 01:09 
https://www.staticgen.com/ is your friend.

"Новая критическая уязвимость в WordPress"
Отправлено Музыкант , 29-Апр-15 11:39 
Спасибо! Я просто не смог найти, как этот подход называется - везде тупо давали ссылки на flat-file CMS.

"Новая критическая уязвимость в WordPress"
Отправлено бедный буратино , 29-Апр-15 16:19 
Я такую фигню на python, bottle и scp собрал минуты за две. Правда, не для блогов, а для просто статических сайтов, у меня они все статические.

А для блогов существуют десятки подобных решений, с разными дискусами для комментариев.


"Новая критическая уязвимость в WordPress"
Отправлено бедный буратино , 29-Апр-15 11:56 
Wordpress удалили из портов OpenBSD. Ибо нефиг :)