Weak Password уразливість в WordPress

23:51 23.04.2008

В WordPress 2.0.x (а також в наступних версіях, потенційно до 2.3.3 включно) є Weak Password уразливість. На котру я звернув увагу ще в 2006 році, як почав використовувати WP.

Дефолтний пароль при інсталяції: 6 символів і невеликий алфавіт (бо застосовується md5).

В системі використовується наступний алгоритм генерації паролю:
$random_password = substr(md5(uniqid(microtime())), 0, 6);

Враховуючи, що алфавіт всього 16 символів, а довжина - 6 символів, то всього можливих комбінацій: 16^6 = 16777216.

Враховуючи дані умови, а також те, що в системі є Abuse of Functionality уразливість, яка дозволяє підбирати логіни користувачів, та Brute Force уразливіть, яка дозволяє підбирати паролі, можна провести брутфорс атаку на сайт.

Підбір пароля (при 10 запитах в секунду):

Запитів: 16777216.
Час: 1677721,6 секунд = 19,42 днів.

В версії WordPress 2.5 ситуація краще.

Використовується функія wp_generate_password. Дефолтний пароль при інсталяції: 7 символів і нормальний алфавіт (62 символи). Всього можливих комбінацій: 62^7 = 3521614606208.


2 відповідей на “Weak Password уразливість в WordPress”

  1. Tyke каже:

    “невеликий алфавіт (бо застосовується md5).” - поясніть, будь ласка, яка корелляція? Дякую

  2. MustLive каже:

    Tyke

    Я вже пояснив це на прикладі коду з Вордпреса. Алгоритм генерації паролю використовує функцію md5: пароль береться з 6 перших символів md5 хеша поточного часу. А так як на виході функції md5 маємо алфавіт в 16 символів, то в результаті пароль має невеликий алфавіт. І при невеликій довжині паролю (в 6 символів) це робить пароль ненадійним. Про що я і написав в своєму записі.

Leave a Reply

You must be logged in to post a comment.