
30.10.2009, 23:39
|
|
Постоянный
Регистрация: 26.03.2008
Сообщений: 526
С нами:
9539822
Репутация:
1350
|
|
2 Frim
Код:
Как достал хеш? Если через XSS, то этот хеш только для подмены куков
Вот почитай....
Допустим мы регистрируемся в форуме IPB => 2.0.* всё с тем-же паролем: 123. Что происходит...
1)Скрипт генерирует нам случайным образом соль(у всех пользователей она будет разная) и заносит её в базу данных.
Допустим нам сгенерировал вот такую : XzNaX.
2)Скрипт берёт нашу соль и хеширует её методом md5.
Получилось вот так: b9b91789bc2f1b3735e67f77d46053fa.Это у нас и есть md5($salt).
3)Скрипт берёт наш пароль (у нас он 123) и тоже хеширует его методом md5.
Получилось вот так: 202cb962ac59075b964b07152d234b70.Это у нас и есть md5($pass).
4)Скрипт берёт нашу хешированную соль и наш хешированный пароль,и снова хеширует их методом md5.
Если подставить в нашу формулу: md5(md5($salt).md5($pass))[PHP] полученные два хеша,увидим следующее:
md5(b9b91789bc2f1b3735e67f77d46053fa.202cb962ac59075b964b07152d234b70) Где точка в PHP означает продолжение строки.А значит скрипт берёт эти два хеша без точки(b9b91789bc2f1b3735e67f77d46053fa202cb962ac59075b964b07152d234b70) и хеширует их методом md5.
Получаем хеш : e509e1f6df1450279ec37dd253bd5b1e.
Вот это и есть солёный хеш.
Авторизация пользователя происходит следующим образом.
Наш пользователь вводит свой ID(ник) и пароль.
Скрипт подставит соль соответствующую введенному ID,и пароль,который вы ввели.
В нашем примере получится так : md5(md5(XzNaX).md5(123))[PHP]
Потом он обработает эти данные и сверит их с нашим солёным хешем.
Если данные совпадают,то вы авторизированы.Если нет,то вам напишут...
Теперь о том что, где хранится в IPB => 2.0.*
В разных форумах по разному.Но в дефолтовых версиях в базе данных можно найти:
Директория forummembers: тут хранится "legacy_password". Это не солёный,простой md5 хеш.
Директория forummembers_converge:тут хранится "converge_pass_hash" .Это солёный,итоговый md5 хеш,с которым скрипт сверяется при авторизации.И в этой-же дирректории хранится "converge_pass_salt" .Это та самая соль,которую все желают поиметь =).
Надеюсь достаточно понятно изложил...
|
|
|