• XSS.stack #1 – первый литературный журнал от юзеров форума

Может кто знает?

xeal

CD-диск
Пользователь
Регистрация
18.07.2005
Сообщения
10
Реакции
0
Попалась под руку БД с такими хешами от паролей: d95e8fa7f20a009372eb3477473fcd34:1c
Может кто-нибудь знает, каким алгоритмом это зашифровано? Вроде похоже на МД5 ( с майсола), но что означает ":1c"? (в разных хешах это значение тоже разное).
 
Может это соль?
 
Я сначала тоже подумал, что возможно это соль, однако отказался от такого варианта - если рассуждать логически:
1)соль надо бы хранить в отдельной таблице
2)чем больше соль, тем лучше, а зная, что соль всего лишь два символа - не составит большого труда забрутить хеш
 
База Майсол, движок - наверное какой-то специфический, точного названия я не знаю. Без этих значений пробывал расшифровывать ( по словарю да и полным перебором, около 100 хешей) ни один не расшифровался...
 
Хммм...
Раз движок специфический - могли и свой алгоритм хэширования придумать и реализовать в данном форуме...
Вариантов слишком много, а ни на что стандартное это не похоже...
 
Хммм а может специально, чтобы запутать. Ведь может, что это абсолютно ничего не значит <_< Так сказать УТКА
 
to xeal:
Чел, ты хотя бы показал записей из БД эдак под 20...
 
2Namelles One Разработать свой алгоритм хеширования слишком трудоёмкая задача, проще использовать уже готовый или слегка модифицировать любой из блочных алгоритмов шифрования типа DES или ГОСТ.
2Dude03Нет, это не утка - не умно как-то получается делать утку в виде 2 символов. Запись несёт свою осмысленность, вот только по одной строчке её не разберёшь.
2xeal Ты бы всё-таки подробнее описал систему.
 
А какая разница, 20 записей я опубликую или одну?:) Все они такого вида, мд5 хеш, двоеточие, а потом два символа разных. И как я могу описывать систему если не знаю что оно такое?:) Просто попалась БД такого вида...
 
В принципе есть небольшая идейка:
возможно что эти 2 символа применяються(то есть какая-нить операция например ксор) поочередно к 2 символам из настоящего хеша. И получаеться следующий тот хеш, который не можем разгадать
 
Скажу честно, я в криптографии не силен. Но есть предположение - число после двоеточия - hex-значение количества хэширования. Ну, типа
Код:
md5(md5(…($password)…));
- это двойное хэширование и т. д.
 
Скажу честно, я в криптографии не силен. Но есть предположение - число после двоеточия - hex-значение количества хэширования. Ну, типа
Код|Code
md5(md5(…($password)…));
- это двойное хэширование и т. д.
гы
А слабо посчитать сначала без калькулятора, чему равно 1ch( = 28d). 28 раза применять мд5 ты опупеешь(задержка большая слишком). Хоть мд5 и создавался как наиболее быстрый, но все же.
 
Насчёт того что он наиболее быстрый - MD4 быстрее.
Количество хеширований не является сильной защитой, т.к. хзная слгоритм, не сложно создать словарь по хешам.
А вообще, стартертопика давно не видно, возможно проблема уже исчерпана.
Ждём xeal'a и результатов его работы по расшифровке хешей без учёта этих символов.
 
либо народ ленивый пошел, либо....
Не люблю пхп, поэтому долго не разбирался=)
5 минут просмотра исходников... Вот результат
file login.php
Код:
if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'process')) {
    $email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
    $password = tep_db_prepare_input($HTTP_POST_VARS['password']);

// Check if email exists
    $check_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
    if (!tep_db_num_rows($check_customer_query)) {
      $error = true;
    } else {
      $check_customer = tep_db_fetch_array($check_customer_query);
// Check that password is good
      if (!tep_validate_password($password, $check_customer['customers_password'])) {
        $error = true;
      } else {
        if (SESSION_RECREATE == 'True') {
          tep_session_recreate();
        }

А эта функция чекает пасс=)
Код:
function tep_validate_password($plain, $encrypted) {
    if (tep_not_null($plain) && tep_not_null($encrypted)) {
// split apart the hash / salt
      $stack = explode(':', $encrypted);

      if (sizeof($stack) != 2) return false;

      if (md5($stack[1] . $plain) == $stack[0]) {
        return true;
      }
    }

    return false;
  }
все до банального просто. вроде бы=)
 
Код:
 function tep_db_prepare_input($string) {
    if (is_string($string)) {
      return trim(tep_sanitize_string(stripslashes($string)));
    } elseif (is_array($string)) {
      reset($string);
      while (list($key, $value) = each($string)) {
        $string[$key] = tep_db_prepare_input($value);
      }
      return $string;
    } else {
      return $string;
    }
  }
Хотя все же не все так просто=)
 
а что это за прикол?
file login.php
Код:
// Check if email exists
   $check_customer_query = tep_db_query("select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from " . TABLE_CUSTOMERS . " where customers_email_address = '" . tep_db_input($email_address) . "'");
Выборка клиентского ид, имени и пароля?
а при проверке пароля
Код:
function tep_validate_password($plain, $encrypted)
т.е. если я правильно понял, то в функцию передаются пароли как плайн-текстом, так и шифрованным. И вообще пароли там храняться нешифрованными, если имходить из приведённых исходников?!
Вообще-то достаточно трудно судить о коде по столь малым отрывкам исходников. Открыто хранить пароли врятли кто отважиться. Хотя xeal, посмотри таблицу TABLE_CUSTOMERS, а в ней поле customers_password и скажи что там.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх