Атака на Abuse of Functionality в WordPress

22:43 18.05.2009

Нещодавно я писав про Abuse of Functionality уразливість в WordPress. Яку виявив Jeff Starr, власник сайта perishablepress.com, коли в нього на сервері відбувся сбій MySQL. До неї уразливі всі версії движка - WordPress 2.7.1 та попередні версії.

Я знаходив чимало уразливостей в WordPress і його плагінах, але на можливість цієї уразливості я не звернув уваги (мабуть тому, що завжди видаляю інсталяційні файли після інсталяції ;-) ). Зате на це звернув увагу Jeff, коли в нього виникли проблеми на сайті. До речі, в своєму записі Important Security Fix for WordPress Jeff навів декілька рекомендацій по виправленню цієї уразливості.

Дана уразливість пов’язана з інсталяційними файлами, якщо вони знаходяться на сервері. І я розробив декілька варіантів атаки на дану Abuse of Functionality уразливість в WordPress.

Як я писав, інсталятор WP повинен перевіряти, чи не встановлений движок. І якщо він встановлений, то виводити відповідне повідомлення. Але у випадку, коли має місце збій MySQL, він цього не перевіряє і дає переінстялювати движок.

Зокрема, як зазначив Jeff, у випадку коли database (що вказана в налаштуваннях WP) повністю відсутня, то інсталятор WP думає, що движок не встановлений і виводить інсталяційний діалог. Також, під час досліджень, я виявив можливість інших варіантів атаки.

Можна атакувати сайт навіть коли є database движка і присутній зв’язок з MySQL, але при цьому є збій в одній з таблиць WP (яку перевіряє інсталятор). Зокрема, атака можлива коли пошкоджена таблиця wp_options (в WordPress 2.6.2), або wp_users (в WordPress 2.0.3 та 2.0.11). Тобто в різних версіях WP різні таблиці є головними при перевірці в інсталяторі - це може бути або таблиця wp_options або wp_users (наврядчи ще якась інша таблиця буде головною для інсталятора в інших версіях WP).

Варіанти атаки на сайт на WordPress (на якому міститься інсталятор):

1. У випадку, коли на сайті відбувся подібний збій з MySQL і виведиться діалог інсталятора, то можна атакувати сайт. Враховуючи, що це дуже малоімовірно, і потрібно ще зафіксувати час даного збою, то варто використати інший варіант атаки.

2. Зробити DoS атаку на MySQL для атаки на WordPress. За рахунок DoS атаки відбудеться збій при зв’язку з MySQL і потенційно інсталятор може вивести діалог інсталяції. Хоча в більшості випадків зв’язок з СУБД буде повністю відсутній й інсталятор виведе відповідне повідомлення.

3. За рахунок автоматизованої атаки на MySQL (через Insufficient Anti-automation уразливості в WP) можна призвести до збою в одній з головних таблиць (що також є DoS атакою). І в такому разі спрацює інсталятор движка.

Зокрема для WordPress 2.0.x та інших версій движка, де інсталятор перевіряє wp_users, цього можна добитися через автоматизовану реєстрацію користувачів. Якщо активно реєструвати користувачів на сайті, може виникнути збій в таблиці wp_users і відповідно движок не зможе її прочитати і виведе діалог інсталятора.

P.S.

Зробив відео демонстрацію DoS атаки на WordPress.


2 відповідей на “Атака на Abuse of Functionality в WordPress”

  1. kamal каже:

    HI, can you pls to translate this article to english?
    Thanks :idea:

  2. MustLive каже:

    kamal

    I wrote a part of this article on English on Jeff Starr’s web site. To read my article completely (and my site as a whole) you need to use translator which supports Ukrainian to English translation, e.g. Google Translate.

Leave a Reply

You must be logged in to post a comment.