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.
Четвер, 13:19 24.04.2008
“невеликий алфавіт (бо застосовується md5).” - поясніть, будь ласка, яка корелляція? Дякую
Четвер, 16:59 24.04.2008
Tyke
Я вже пояснив це на прикладі коду з Вордпреса. Алгоритм генерації паролю використовує функцію md5: пароль береться з 6 перших символів md5 хеша поточного часу. А так як на виході функції md5 маємо алфавіт в 16 символів, то в результаті пароль має невеликий алфавіт. І при невеликій довжині паролю (в 6 символів) це робить пароль ненадійним. Про що я і написав в своєму записі.