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.