Недавно ко мне обратился знакомый с интересным вопросом.
Клиент его интернет-магазина на движке Oscommerce забыл пароль от своего профиля.
В принципе ситуация банальная и почти на всех CMS есть функция восстановления пароля
(Для Oscommerce — https://адрес вашего сайта/password_forgotten.php), но
по какой то непонятной причине письмо до клиента не доходило, хотя на всех остальных
аккаунтах магазина восстановление работает — письма приходят.
Знакомый через админку изменил почтовый ящик клиента на свой и пробовал восстановить пароль, но тоже без результатно.
После чего написал мне о наличии такой проблемы и возможности как то то узнать или восстановить пароль напрямую через БД Mysql.
Решение
Данные по каждому пользователю хранятся в Cms Oscommerce в таблице customers — customers_password.
Изменить их можно через phpMyAdmin, но вся проблема в том что там используется шифрование md5.
Которое декодировать практически невозможно, только если пароль простой и мы найдем его соответствие на специализированных ресурсах.
Но это явно того не стоит, проще пойти другим путем.
Создаем в магазине тестовый аккаунт и задаем в графе пароль тот на который бы мы хотели изменить пароль нашего клиента.
Затем идем в базу Mysql, открываем таблицу с данными нашего тестового клиента и копируем оттуда customers_password.
Теперь осталось его вставить в соответствующую графу клиента, которому мы хотим изменить пароль и вуаля.
Можно отсылать счастливому клиенту его пароль.
В принципе этот простой трюк можно адаптировать и к другим cms, да пароли могут быть в разных местах, но фокус тот же.
Аналогично почти во всех CMS с БД пароли меняются
В любом случае нужно разобраться с невозможностью восстановить пароль стандартными методами.
Разобраться нужно, но бывает на это нужно больше времени, а клиент не всегда готов ждать, так что как быстрое универсальное решение, которое в состоянии сделать каждый — подойдет.
На картине пароль закодирован не в md5. Если бы он был в md5, можно было бы просто взять новую строку, закодировать её любым md5-инструментом (даже онлайн) и записать в базу.
Еще можно открыть исходник cms, найти функцию, которая генерирует хэш по паролю и запустить её отдельно, полученный хэш записать в базу.
Так же работает со всеми CMS, у которых не обфусцирован код.