IAA, Redirector та XSS уразливості в WordPress
23:56 26.04.2012Окрім згаданих мною в 2007 році двох редиректорів (які окрім Redirector, також уразливі до XSS), є багато інших редиректорів. І один зі знайдених мною 13.02.2012 редиректорів (хоча захистився від нього я ще на початку 2007 року) я оприлюдню зараз, а з часом й інші редиректори.
Ще з WP 2.0 є Insufficient Anti-automation, Redirector і Cross-Site Scripting уразливості в wp-comments-post.php. З IAA я стикнувся одразу, як почав використовувати WP в 2006 році. Якщо розробники виправили попередні два редиректори (і уразливості в них) в WP 2.3, то ці уразливості не виправлені навіть в WP 3.3.1.
Раніше я вже писав про DoS та SQL Injection уразливості в WordPress.
Insufficient Anti-automation:
Відсутність капчі в формі коментарів дозволяє проводити автоматизовані атаки. Розробники досі не встановили капчу в форму коментарів WP (з першої версії движка), що окрім IAA атак, також дозволяє проводити Redirector і XSS атаки.
По замовчуванню в WordPress включена премодерація, а також існує вбудований анти-спам фільтр. Якщо 10 років тому премодерації вистачило б, то вже давно цей механізм не може вважатися достатнім захистом від спаму, а анти-спам фільтр має ефективність менше 1% - лише деякі зі спам повідомлень він помічає як спам. А також ці механізми не захищають від нижченаведених атак. Також з WP постачається плагін Akismet, що захищає від спаму “без капчі”. Але по замовчуванню він відключений та порівняно з капчею вважається менш надійним і також не захищає від нижченаведених атак.
Redirector (URL Redirector Abuse):
XSS:
XSS атака можлива на різні браузери, але її провести важче ніж у випадку попередніх двох редиректорів (через data URI). На веб серверах IIS редирект відбувається через заголовок Refresh, а на інших веб серверах - через заголовок Location.
В зв’язку з особливостями роботи даного скрипта (фільтрація важливих символів та додавання якорю), для виконання JS коду потрібно використовувати хитрі обхідні методи. При цьому, якщо редирект відбувається через заголовок Location, код спрацьовує в Opera 10.62 і він повинен працювати в Firefox, IE6 і Chrome, але різні версії Firefox (та IE6 і Chrome) упорно ігнорують даний заголовок (виводячи лише пусту сторінку) - при тому, що окремо заголовок Location з даним кодом спрацьовує в Firefox і в інших браузерах, але не в рамках WordPress. З комбінованим варіантом javascript URI + data URI та сама ситуація.
Для цих атак непотрібно мати акаунт на сайті й немає значення чи увімкнена премодерація або плагін Akismet. Єдине що може захистити від цих атак - це капча в формі коментарів, причому надійна (або повне виключення коментарів, але з капчею можна продовжити використовувати цей функціонал). Таким чином капча захищає як від IAA, так і від Redirector та XSS уразливостей.
Уразливі WordPress 2.0 - 3.3.1.