Один из самых популярных способов аутентификации - это использования имени пользователя (логина) и пароля. Он самый простой с точки зрения реализации, самый старый и поэтому до сих пор является самом популярным. Делов то, написать проверку на соответствие введенных данных на записи в БД.
Однако, несмотря на свою простоту, данный способ является самым уязвимым. Для взлома аккаунта нужно иметь логин (который не является секретом) и пароль, который можно получить различными способами.
В данной статье мы рассмотрим получение пароля через брутфорс хешей.
Небольшое введение
С какого-то момента люди решили, что хранение в памяти паролей в открытом виде - это не самая лучшая идея, ведь если злоумышленник получит доступ к базе данных, все учетные записи попадут в его руки. Вот яркий пример, в котором 30 миллионов паролей превратились в самый популярный словарь, используемый в CTF-соревнованиях и при реальных атаках (особенно в то время). На данный момент подавляющее большинство баз данных хранят пароли в закрытом виде - через алгоритмы шифрования или хеш-функции.
Хеш-функция - это математическая функция, преобразующая входные данные произвольного размера в выходную строку конкретной длины. Помимо этого, хеш-функции также имеют следующие свойства: