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

05.06.2009, 09:29
|
|
Новичок
Регистрация: 04.06.2009
Сообщений: 3
Провел на форуме: 1354
Репутация:
0
|
|
Помогите разгадать алгоритм.
Уважаемые коллеги помогите расшифровать алгоритм генерации пароля.
Есть простенький сайт на Perl, на котором, зная пару логин и административный e-mail можно поменять пароль (он приходит на административный e-mail) Просто приходить письмо с новым паролем никакие подтверждения в письме нажимать не надо.
Пароль генерируется скорее всего с использованием Perl модуля Time::HiRes (количество секунд и микросекунд , начиная с 1 января 1970 г 00:00:00).Ни какой функции rand() скорее всего не применяется.
Те если бы удалось в идеале синхронизировать (до микросекунды)запуск скрипта смены пароля на тестовом логине и на интересующем логине то на тестовый ящик пришел бы такой же пароль как и на административный e-mail интересующего меня логина.
Пароль генерируется из 8 знаков. Используются только заглавные латинские буквы и цифры. Т.е. всего 36.Те надо выдавать “случайные” числа в диапозоне 0-35
Матрица соотношений скорее всего такая
0-0
1-1
…
9-9
10-A
11-В
…
35-Z
Алгоритм генерации первой буквы следующий:
Модуль модуля Time::HiRes выдает количество секунд и миллисекунд с начало эпохи
Реальный пример 1243815304.0XXXXX (в эту секунду было сгенерировано 2 пароля 42RGZWUF и 42RP5PE9)
Колличество секунд делим на 36.
1243815304/36=34550425,111111111
Целую часть умножаем на 36
34550425*36=1243815300
От начального значения отнимает то что перемножили, получаем число в диапозоне 0-35
В данном случаи 4
1243815304-1243815300=4
Код 4 соответствует числу 4 в пароле (по матрице соотношений)
4=4
Первый знак получается почти с точность 100% если знаешь время запуска скрипта.
Если получиться запустить тестовый скрипт и скрипт смены пароля ”жертвы”с точность до десятый доли секунды то совпадет 2я цифра если с точность до сотой доли то совпадет 3я цифра и все дольше ни как большую точность настроить не получается.
Алгоритм расчета 2го знака по аналогии не подходит.
Я думал что если помножить 1243815304.0XXXXX на 10 и взять целую честь и повторить все операции то получится 2я цифра но это не так.
12438153040/36=345504251,11111111111111111111111
345504251*36=12438153036
12438153040-12438153036=4
4=4 а нужно 2
Понятно что десятые, сотые, тысячный и т.д. вычисляться должны экспериментально (ведь время запуска на локальном компьютере и на сайте будут иметь разницу в десятых-сотых секунды.
). Те подставляем наиболее подходящее (от 0 до 9)в данном случаи лучший вариант для десятых это ноль.
Может кто-нибудь уже сталкивался с подобной проблемой или знает алгоритм ?
Или смог синхронизировать запуск скриптов с очень высокой тольность?
Нужно просто одновременно запустить 2 ссылки вида http://www.site-gde-nuzhno-uznat-parol.com/cgi-bin/pass?login=login&email=email@email.com
(Я просто засунул эти 2 линка в HTML фрем с 2 окнами. И открывал в браузере на локальной машине.)
Или как то по-другому можно решить это проблему?
Понятно, что можно перебором, но это очень долго(36^N). А зная алгоритм это всего 10^5 вариантов за месяц можно управиться.
|
|
|

05.06.2009, 10:08
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
hakerovchanen Скорее всего, наверное, может быть - будете знать точно алгоритм, тогда приходите. Экстрасенсорные способности летом отключаются.
З.Ы, gdsgfagincvjskadnvuaisherknjxckvznrhbzxjdfkndskr - хэш пароля, наверное, как нибудь, что нибудь его декодирует
|
|
|

05.06.2009, 11:02
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Колличество секунд делим на 36.
1243815304/36=34550425,111111111
Целую часть умножаем на 36
34550425*36=1243815300
От начального значения отнимает то что перемножили, получаем число в диапозоне 0-35
В данном случаи 4
1243815304-1243815300=4
Вообще-то, все эти махинации называются 1243815304 mod 36
+ По-моему, серверное время любезно присылается в заголовке Date, не?
|
|
|

05.06.2009, 11:07
|
|
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме: 1917742
Репутация:
541
|
|
имхо локальный генератор нужно не одновременно запускать, а запускать раньше, но в коде добавить генерацию не одного пароля а списка, и вывод сделать: пароль - время с точностью до нужного, тоесть запускаете генератор и он генерит и выводит все что на генерил, потом обращаетесь к сайту, получаете пароль... и уже тогда парсите сгенеренный файл по нужному времени.. да и алго генерации уже реализовано в коде?
|
|
|

05.06.2009, 23:50
|
|
Новичок
Регистрация: 04.06.2009
Сообщений: 3
Провел на форуме: 1354
Репутация:
0
|
|
Сообщение от astrologer
Вообще-то, все эти махинации называются 1243815304 mod 36
+ По-моему, серверное время любезно присылается в заголовке Date, не?
Да присылается только в стандартном формате dd-mm-yy-hh-mm-ss.
Astrologer,У Вас в практике подобный алгоритм встречался? Или может где-нибудь есть класический алгоритм генерации пароля с помощью "часов"?
|
|
|

05.06.2009, 23:53
|
|
Новичок
Регистрация: 04.06.2009
Сообщений: 3
Провел на форуме: 1354
Репутация:
0
|
|
Сообщение от LEE_ROY
имхо локальный генератор нужно не одновременно запускать, а запускать раньше, но в коде добавить генерацию не одного пароля а списка, и вывод сделать: пароль - время с точностью до нужного, тоесть запускаете генератор и он генерит и выводит все что на генерил, потом обращаетесь к сайту, получаете пароль... и уже тогда парсите сгенеренный файл по нужному времени.. да и алго генерации уже реализовано в коде?
LEE_ROY,Да с синхронизацией похоже дохлый номер.
А вот интересно можно ли как то Аpach "замкнуть" что бы он вместо испольнения скрипта просто показал исходный код?
|
|
|

06.06.2009, 00:32
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
Да присылается только в стандартном формате dd-mm-yy-hh-mm-ss.
http://il.php.net/manual/ru/function.mktime.php
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|