Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

27.03.2006, 04:55
|
|
Постоянный
Регистрация: 24.10.2005
Сообщений: 343
Провел на форуме: 3175190
Репутация:
134
|
|
Немного про Соль (SALT)
Тут я вижу возникает много вопросов о том, что такое Соль и с чем собственно её едят =).
Хотелось бы немного прояснить ситуацию.
Что необходимо понять в первую очередь...
В первую очередь необходимо хотя бы поверхностно понять алгоритм хеширования.
Будем разбираться на примере форумов IPB => 2.0.*
В этих форумах алгоритм следующий : md5(md5($salt).md5($pass)).
Для справки,в форумах IPB <= 2.0.* алгоритм такой : md5.
Теперь разберём всё на примере.
Допустим у нас есть пароль: 123.
При регистрации в форумах IPB <= 2.0.* наш пароль хешируется алгоритмом md5 и преобразуется в такую строку: 202cb962ac59075b964b07152d234b70. Таким образом,поимев этот хеш, стырив Cookies жертвы,мы можем эту строку расшифровать благодаря множеству существующих программ и т.д. Всё просто.(Лишь бы пароль был не сильно мудрёный).
Теперь переходим к IPB => 2.0.* .
Что мы видим: md5(md5($salt).md5($pass))[PHP].
Даю определение Salt - она-же Соль.
Salt - это сгенерированные скриптом данные, которые усложняют подбор пароля после хеширования.А как она усложняет мы сейчас разберёмся.
В IPB соль состоит из пяти случайно сгенерированных символов.
Пример: kHa$+ или @pBuc
Теперь по порядку:
Допустим мы регистрируемся в форуме 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" .Это та самая соль,которую все желают поиметь =).
Теперь делаем выводы.
При XSS атаке мы получаем на сниффер солёный хеш .Что он нам даёт?Да вообщем-то ничего,кроме того,что мы можем подменив Cookies зайти на форум от имени жертвы.Получить пароль из этого хеша не представляется возможным,потому как мы не знаем Соль.
Вы спросите,а как получить соль?
Только не через Cookies жертвы! В Cookies она не хранится.
Соль можно добыть сплойтами,SQL иньекциями и т.д.(Смотрим видео Coyl'a: http://video.antichat.ru/file25.html ,читаем форум).Вообщем для того что-бы её получить нужно попасть в базу данных форума.Там же в базе данных можно подсмотреть "legacy_password" ,тот самый не солёный хеш,который можно расшифровать без Соли.
Ну вот,пока всё...
Последний раз редактировалось Гаврила; 27.03.2006 в 07:37..
|
|
|

27.03.2006, 05:21
|
|
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме: 9751364
Репутация:
1847
|
|
202cb962ac59075b964b07152d234b70
Мой Каин не верит в то что это мд5
Последний раз редактировалось Trampled_clover; 27.03.2006 в 05:32..
|
|
|

27.03.2006, 05:26
|
|
Постоянный
Регистрация: 24.10.2005
Сообщений: 343
Провел на форуме: 3175190
Репутация:
134
|
|
Всё тестировал через PasswordsPro 
|
|
|

27.03.2006, 17:37
|
|
Green member - Level 3
Регистрация: 08.10.2005
Сообщений: 396
Провел на форуме: 400609
Репутация:
239
|
|
Trampled_clover
вгешни похож (32 символа 0-9a-f), может там где "c" русскся или типа того.
или каину нужно чтобы все было в верхнем регистре?
Гаврила
+1
Добавлю на эту статью линк на WH, а то в "Критпографии" вечно один и тот же вопрос задают. Угадайте какой ))
__________________
Никому нельзя верить...
|
|
|

27.03.2006, 18:47
|
|
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме: 9751364
Репутация:
1847
|
|
2 drmist
Ему без разницы (Каину). Главное чтобы мд5 был. А это не мд5 (с) Каин и Авель 
|
|
|

27.03.2006, 20:40
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме: 2976185
Репутация:
694
|
|
2Гаврила статья - супер я наконец то дотумкал что такое соль. тебе +
|
|
|

01.04.2006, 00:12
|
|
Участник форума
Регистрация: 28.03.2006
Сообщений: 124
Провел на форуме: 434516
Репутация:
23
|
|
Спасибо за статейку 
|
|
|

20.07.2007, 10:09
|
|
Познающий
Регистрация: 03.02.2007
Сообщений: 94
Провел на форуме: 267066
Репутация:
165
|
|
Автор не пожалел собственного времени на улучшение внешнего вида статьи. Хотя бы даже за это плюс. Не говоря, что всё обьяснено наилучшим образом и по-рабоче-крестьянски. А настоящий md5 это или нет имхо нет нужды выяснять, ИМХО  .
|
|
|

20.07.2007, 10:17
|
|
Участник форума
Регистрация: 10.09.2006
Сообщений: 160
Провел на форуме: 619440
Репутация:
96
|
|
спасиб, тож только что разобрался  эхх, а я то думал почему ни один расшифровщик не может мой мд5 крякнуть 
|
|
|

20.07.2007, 18:19
|
|
Постоянный
Регистрация: 10.11.2006
Сообщений: 416
Провел на форуме: 5636868
Репутация:
849
|
|
IPB <= 2.0.* -md5
IPB => 2.0.* -md5(md5($salt).md5($pass))
Исходя из чисто математических соображений, получается, что
md5 = md5(md5($salt).md5($pass))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|