29.04.2015

Опасная уязвимость в Wordpress версии 4.2 и ниже

Опасная уязвимость в Wordpress версии 4.2 и ниже

В CMS Wordpress найдена опасная XSS уязвимость системы комментариев. Уязвимость позволяет злоумышленнику внедрить JavaScript в комментарии Wordpress. Уязвимости подвержена CMS Wordpress версии 4.2, 4.1.3, 4.1.2, 4.1.1, 3.9.3 и ниже.

XSS уязвимость системы комментариев Wordpress

Уязвимость была обнаружена Jouko Pynnönen и вся подробная информация опубликована на сайте klikki.fi. Найденная XSS уязвимость позволяет злоумышленнику исполнять JavaScript, используя форму комментирования в CMS WordPress.

Суть уязвимости заключается в том, что стандартные комментарии в Wordpress в таблице БД используют тип TEXT, в котором может хранится 64 КБ данных. При добавлении комментария больше 64 КБ MySQL обрезает остаток текста комментария, таким образом, что выводятся лишь первые 65 тыс. символов. Эта лазейка позволяет добавить комментарий на сайт Wordpress с проверкой на валидность но при обрезании последней части комментария его содержимое становится опасным для вывода, так как может содержать нефильтрованный код JavaScript.

На своем сайте Jouko Pynnönen пишет, что уязвимость опасна при просмотре такого комментария администратором сайта, так, после просмотра комментария администратором, злоумышленник может использовать уязвимость для выполнения произвольного кода на стороне сервера сайта, используя редактор тем или плагинов. Таким образом, с помощью этой уязвимости злоумышленник может менять пароль администратора, создавать новые учетные записи админа и, соответственно, делать все, что может делать авторизированный администратор сайта.

В качестве доказательства уязвимости автор предлагает ввести код в комментарии Wordress:

<a title='x onmouseover=alert(unescape(/hello%20world/.source)) style=position:absolute;left:0;top:0;width:5000px;height:5000px  AAAAAAAAAAAA...[64 kb]..AAA'></a> 

А в демо-ролике на своем сайте Jouko показал, как он использовал эту уязвимость в комментариях для того, чтобы залить shell-скрипт в директорию сайта на Wordpress:

Решение XSS уязвимости комментариев в Wordpress

Команда Wordpress 27 апреля выпустила патч безопасности 4.2.1 (WordPress 4.2.1 Security Release 27.04.2015), где эта уязвимость устранена. Если Ваш сайт на Wordpress еще не обновился автоматически до актуальной версии, то мы крайне рекомендуем сделать это самостоятельно для устранения опасной уязвимости.
До появления обновления от команды Wordpress Jouko Pynnönen советовал не одобрять комментарии и отключить комментарии полностью.

Как проверить XSS уязвимость системы комментариев Wordpress

Проверить есть ли у Вас комментарии больше 65 тыс. символов можно в phpMyAdmin, выполнив SQL-запрос в базе данных сайта на Wordpress:

SELECT comment_ID FROM wp_comments WHERE LENGTH(comment_content) >= 65535;

MySQL вернет или пустой результат или отобразит id комментариев, которые больше 65 тыс. символов и могут быть потенциально опасными. Можно изучить комментарий и выяснить, что злоумышленник хотел сделать этим комментарием на сайте.

Как не пропускать опасные комментарии в Wordpress

Для того, чтобы не пропускать опасные комментарии в Wordpress можно добавить небольшой код, который выполняет проверку на длину текста комментария и не пропускает длинные комментарии Wordpress. Код необходимо добавить в файл functions.php Вашей Wordpress темы (/www/ваш-сайт/wp-content/themes/ваша-тема/functions.php) в самый конец файла перед символами "?>"

/* BEGIN XSS 64WP COMMENT PROTECTION *///////////////
add_filter( 'pre_comment_content', 'xss_comment_64kb_protection');
function xss_comment_64kb_protection( $content ) {
    if ( strlen( $content ) > 64000 ) {
        wp_die( 'Comment is too long!' );
    }
    return $content;
}
/* END XSS 64WP COMMENT PROTECTION */////////////// 

Последние новости

Скидка на все домены Украины до 21.10.2022!
14.10.2022
Скидка на все домены Украины до 21.10.2022!
Уважаемые пользователи! Целую неделю у нас скидка -15% на регистрацию всех украинских доменов по промокоду defendersday22!
Подорожание ряда украинских доменов UA ccTLD!
28.09.2022
Подорожание ряда украинских доменов UA ccTLD!
Уважаемые пользователи! С 1 октября 2022 нас ждет подорожание в ряде украинских доменов - in.ua, od.ua, mk.ua!
Важные изменения в работе ряда украинских доменных имен!
09.03.2022
Важные изменения в работе ряда украинских доменных имен!
Уважаемые пользователи! В некоторых украинских доменных зонах увеличен срок периода Redemption с 30 до 60 дней.
Существенное подорожание выделенных IP-адресов (IPv4) в Германии!
09.08.2021
Существенное подорожание выделенных IP-адресов (IPv4) в Германии!
Уважаемые пользователи! В Германии существенно подорожали дополнительные выделенные IP-адреса (IPv4) и IP-сети.

Последнее в блоге

Коронавирус Coronavirus (COVID-19) и кибермошенники в сети Интернет
02.03.2020
Коронавирус Coronavirus (COVID-19) и кибермошенники в сети Интернет
Паника вокруг коронавируса COVID-19 используется кибермошенниками в сети Интернет - фишинг, продажа масок, вакцин и тестов.
Не отправляется почта - проверяем не блокирует ли провайдер 25 порт
11.01.2020
Не отправляется почта - проверяем не блокирует ли провайдер 25 порт
Проверяем блокирует ли провайдер 25 порт с помощью командной строки в ОС Windows. Как отправлять почту если 25 порт заблокирован.
Как установить Clam AntiVirus (ClamAV) на VPS или сервер с ОС CentOS
11.11.2019
Как установить Clam AntiVirus (ClamAV) на VPS или сервер с ОС CentOS
Устанавливаем Clam AntiVirus (ClamAV) на VPS / VDS или выделенный сервер с ОС CentOS и настраиваем ежедневное сканирование сервера.
ISPmanager больше не поддерживает резервное копирование в Яндекс.Диск
20.10.2019
ISPmanager больше не поддерживает резервное копирование в Яндекс.Диск
В течении недели Яндекс.Диск исчезнет из списка хранилища для резервного копирования в панеле ISPmanager и других продуктах ISPsystem.