Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таинственный баг в скрипте, не дырка. md5 шифрование 
:(
    Опции темы
SIMarOK
Дата 13.10.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Есть скрипт, назовем его merch.php, в нем выполняются функции выбора различных вариантов и форма отправки пост запроса на удаленный сервер, а так же есть инклуд в файл, назовем его md5.php, в котором выполняется рандом числа($key) и определение от мат. вычисления определенного слова, к примеру $slovo, а также получаем число, $chis, все эти данные шифруются в md5 код, а именно $hash=md5($key, $chis, $slovo); и после чего все это записывается в мускул, а именно $key, $chis, $slovo, $hash. И после чего в вызывающим файле высвечивается этот md5( переменная $hash). Фишка в том, что не зная $key, узнать слово( а их всего 2) нельзя, ключ выдается после определенного действия альфа. Так вот, человек, назовем его хацкером, узнает нужны md5, с нужным словом, до совершения действия альфа, но как он это делает...

По логам вижу что он просто рефрешит файл merch.php раз десять( при этом как я и говорил ведется запись в дб ), после чего выбирает нужные поля в дб, с нужными md5, и совершает действие альфа только с ними...Никаких пост запросов к файлу он не отправляет, по логам апача видно что он запускает только этот файл, к другим не обращается. Проверив логи сервера панель что доступ к скриптам и аккаунту он не имеет, т.е. в мускул он не заходит...Расшифровать md5 тоже не реально...В скриптах дыр нету.

Не знаю что и думать....мистика? может кто знает в чем дело? помогите пожалуйста...

Это сообщение отредактировал(а) SIMarOK - 13.10.2005, 19:04
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Ну показывай код, будем смотреть...
PM ICQ   Вверх
SIMarOK
Дата 13.10.2005, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



код то тут причем, дело не в коде.
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



SIMarOK дело в коде по любому, иначе бы глюк мог быть один или два раза, не больше.
PM ICQ   Вверх
Guest
Дата 13.10.2005, 22:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











файл merch.php
Код

<?
if ($one <> '') {
$stav = "0.05";
$p=31131231;
}
elseif ($two <> '') {
$stav = "0.10";
$p=2121212;
}
include "md5.php";
echo '
<FORM action=https://tvo-tvo.com method=post name=veshe>
<center>
<input type=hidden name=stav value="'; echo $stav; echo '">
<input type="hidden" name="p" value="'; echo $p; print '">
<input type=hidden name=kod value="'; echo $hash; echo '">
 <INPUT name="submit2" type=submit class=submit2 value="Далее, на оплату">
<p class=text2> <b>md5-код:</b>
';
echo "$hash";


файл md5.php
Код

$key = rand(1,1003417843333333333);
$ran = rand(1,2);

if($ran == 1)
{
$slovo = "da";
}
if($ran == 2)
{
$slovo = "net";
}

$hash = md5($key.$slovo.$stav);

$que=@mysql_query ("SELECT * FROM `befo` ORDER BY `ID` DESC"); 
$ida = mysql_num_rows($que);
$id = $ida+1;
$ok=@mysql_query ("INSERT INTO befo values ('$id','$slovo','$key','$ran','$hash')");


Вот и весь код, но дело не в коде как я думаю. есть лишь наверно какой-то способ перехвата данных...
  Вверх
SIMarOK
Дата 13.10.2005, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



это был я....
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



1. mt_rand
2. А что мешает авто_инкренент на таблицу поставить, чтобы выкинуть один запрос и не делать $id = ... ??
3. != - не равно, а не <>
(вот тут и ошибка скорее всего.)
PM ICQ   Вверх
SIMarOK
Дата 13.10.2005, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



и хацкер из за этого <> может просмотреть базу или ключ? но как?
Добавлено @ 22:26
Нужен именно id, он там используется в скрипте
Добавлено @ 22:30
Опишу его действия: 1) Обновляет файл merch.php раз 10-20, примерно 1 обновление приходится на 1 секунду, т.е. за это время не возможно скопировать сгенерировавшийся md5, значит он уже потом все что получилось просматривает и выбирает что нужно.
2) Уходит на минут 5-10, для обработки очевидно. При этом никаких конектов с сервером нет.
3) Приходит уже после совершения операции альфа, т.е. уже указав в коде, нужный md5( очевидно с харды переходит).

Это сообщение отредактировал(а) SIMarOK - 13.10.2005, 22:31
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(SIMarOK @ 13.10.2005, 23:26)
и хацкер из за этого <> может просмотреть базу или ключ? но как?

Просто в таком случае у тебя переменная $stav не получает значения.

ЗЫ: Я тут че-то тупить начал. А суть проблемы в том, что кто-то данные берет или что? Сорри, день тяжелый был..
PM ICQ   Вверх
SIMarOK
Дата 13.10.2005, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Суть в том, что к примеру нужны те md5 в которых зашифровано слово da, и он узнает их...как я сам не знаю...
Добавлено @ 22:40
Цитата(Mal @ 13.10.2005, 22:35)
Цитата(SIMarOK @ 13.10.2005, 23:26)
и хацкер из за этого <> может просмотреть базу или ключ? но как?

Просто в таком случае у тебя переменная $stav не получает значения.

ЗЫ: Я тут че-то тупить начал. А суть проблемы в том, что кто-то данные берет или что? Сорри, день тяжелый был..

значения передаются...разве тут дырка есть?
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(SIMarOK @ 13.10.2005, 23:37)
значения передаются...разве тут дырка есть?

Код

<?php

$one = "";
$two = "";
$p = 0;
if ($one <> '') {
$stav = "0.05";
$p=31131231;
}
elseif ($two <> '') {
$stav = "0.10";
$p=2121212;
}

print $stav . "<br>" . $p;

?>



Цитата(SIMarOK @ 13.10.2005, 23:37)
Суть в том, что к примеру нужны те md5 в которых зашифровано слово da, и он узнает их...как я сам не знаю...

Заюзай mt_rand(); Это раз. два. В принципе можно раскрыть md5, т.к. в нем коллизию нашли.
Попробуй сделать тоже самое, но через хэш sha1();
PM ICQ   Вверх
SIMarOK
Дата 13.10.2005, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



пасибо. Коллизию?
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(SIMarOK @ 13.10.2005, 23:58)
Коллизию?

http://forum.vingrad.ru/index.php?showtopi...view=getnewpost
PM ICQ   Вверх
SIMarOK
Дата 13.10.2005, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



А md5 от sha1 многим отличается?, можно как-то изменить, чтобы коллизия стала другой?
Добавлено @ 23:10
Но если знание коллизии сокращает только на 8 часов подбора, значит это тоже нето, т.к. он это делает не более чем за 5 минут
Добавлено @ 23:13
Цитата(Mal @ 13.10.2005, 22:53)

Код

<?php

$one = "";
$two = "";
$p = 0;
if ($one <> '') {
$stav = "0.05";
$p=31131231;
}
elseif ($two <> '') {
$stav = "0.10";
$p=2121212;
}

print $stav . "<br>" . $p;

?>


С этим кодом вовсе перестало функционировать, вместо подстановки теперь передаются начальные значения $one = "";
$two = "";
$p = 0;

но дело не в этом...

Это сообщение отредактировал(а) SIMarOK - 13.10.2005, 23:17
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(SIMarOK @ 14.10.2005, 00:05)
можно как-то изменить, чтобы коллизия стала другой?

Коллизия - читай баг.

Цитата(SIMarOK @ 14.10.2005, 00:05)
А md5 от sha1 многим отличается?

Это два разных алгоритма хэширования. Заменяй и не парься.
PM ICQ   Вверх
SIMarOK
Дата 13.10.2005, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



т.е. если я только md5() заменю на sha1() то все, уже не сможет найти?
Добавлено @ 23:20
ок, спасибо, попробую
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(SIMarOK @ 14.10.2005, 00:05)
С этим кодом вовсе перестало функционировать, вместо подстановки теперь передаются начальные значения $one = "";

Я тебе пример показад при каких условиях у тебя не доходят нужные данные.
PM ICQ   Вверх
SIMarOK
Дата 13.10.2005, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Только если будет видно на сайте что это sha1, то он опять сможет узнавать?
PM MAIL   Вверх
Mal Hack
Дата 13.10.2005, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(SIMarOK @ 14.10.2005, 00:21)
Только если будет видно на сайте что это sha1, то он опять сможет узнавать?

1. Как он увидит?
2. В ША1 нет таких коллизий диких вроде... Почитай про криптографию...
PM ICQ   Вверх
SIMarOK
Дата 14.10.2005, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 25.10.2004

Репутация: нет
Всего: нет



Но он же не записывает, при обновлении страницы, получившиеся md5, а только потом все просматривает, за 0.5-1 секунду это не возможно сделать...
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.