XSS, Redirector та CSRF уразливості в WordPress

17:21 14.07.2012

Після семи попередніх уразливостей в Akismet, ось нові дірки. У лютому, 23.02.2012, я знайшов Cross-Site Scripting, Redirector та Cross-Site Request Forgery уразливості в плагіні Akismet для WordPress. Він є core-плагіном (починаючи з версії WP 2.0), тому ці уразливості також стосуються самого WordPress. Це друга порція уразливостей в плагіні Akismet.

Раніше я вже писав про XSS, Redirector та FPD уразливості в WordPress.

XSS:

Якщо включена опція “Auto-delete spam submitted on posts more than a month old” і відправці спам коментарю для посту, який старше 30 діб, можлива XSS і Redirector атаки (and they can be conducted as on logged in admins and users, as on any visitors of the site). Вразливі всі версії Akismet з даним функціоналом (до версії 2.5.6).

Потрібно відправити POST запит http://site/wp-comments-post.php (подібно до мого попереднього експлоіту для XSS в коментарях) з вказанням заголовка Referer. Це можна зробити через Flash або інші методи.

Referer: data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ+

На веб серверах IIS редирект відбувається через заголовок Refresh, а на інших веб серверах - через заголовок Location.

Redirector (URL Redirector Abuse):

Атака відбувається при вищенаведених умовах. Потрібно відправити POST запит http://site/wp-comments-post.php (подібно до мого попереднього експлоіту для Redirector в коментарях) з вказанням заголовка Referer. Це можна зробити через Flash або інші методи.

Referer: http://attackers_site

При цьому в останній версії Akismet 2.5.6 ці дві уразливості вже виправлені (причому приховано, без жодного згадування в readme.txt). Схоже, що це трапилося після моєї березневої чи квітневої публікації про XSS і Redirector уразливості через редиректори в WP.

CSRF:

В Akismet < 2.0.2 (WordPress < 2.0.11) взагалі не було захисту від CSRF, окрім поля введеня API key. Починаючи з версії Akismet 2.0.2 захист з'явився, але не в усьому фунціоналі.

CSRF уразливість в функції збереження конфігурації. Через POST запит до скрипта http://site/wp-admin/plugins.php ?page=akismet-key-config можна змінювати конфігурацію.

Атака спрацює лише на WP < 2.0.3 (де не було захисту від CSRF в движку) в старих версіях Akismet (таких як 2.0.2 і попередні та деяких наступних).

CSRF уразливість в функції "Check network status". При GET запиті до сторінки http://site/wp-admin/plugins.php ?page=akismet-key-config відбується запит до чотирьох серверів Akismet з кешуванням запиту.

Для відправки запитів до серверів Akismet в обхід кешування, можна відправити POST запит до цієї сторінки. При активних CSRF запитах можна створити навантаження на сервери Akismet (особливо якщо атакувати з багатьох серверів).

WordPress Akismet CSRF.html

Уразливі Akismet 2.5.6 та попередні версії та WordPress 2.0 - 3.4.1.


Leave a Reply

You must be logged in to post a comment.