информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / guestbook
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
2dl Еще баг в форуме нашел 08.10.01 13:20  
Автор: paganoid Статус: Member
<"чистая" ссылка>

Ситуация такая. Зарегистрированный пользователь заходит в форум под своим логином и паролем. Его перекидывает на некую урлу, в которой есть всякие session id , ну да dl виднее. Жмёт кнопку ВЫХОД , что, в соответствии со здравым смыслом должно запирать просмотр форума по этой (предыдущей урле). Однако это не так. Т.е. "попробовав раз, ем и сейчас" . Надо на нажатие кнопы ВЫДОХ вычищать сешн ид откуда надо.

Эта бага весьма нехороша при чтении данного форума, к примеру, из интренет-кабака, поскольку любой может сесть за машину и, погуляв по хистори браузера, понаписать сообщений от чужого имени.
2dl ууу как все запущено 08.10.01 14:17  
Автор: paganoid Статус: Member
<"чистая" ссылка>
ужас какой, да тут session_id вроде вечный, не меняется ...
заглянул через плечо человеку в урлу, подсмотрел буковки в урле после &cp= и всё,.... В совокупности с тем, что для смены пароля в настройках не требуется ввод старого пароля, это означает лёгкую возможность захвата ника....
2dl ууу как все запущено 08.10.01 18:58  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> ужас какой, да тут session_id вроде вечный, не меняется ...
> заглянул через плечо человеку в урлу, подсмотрел буковки в
> урле после &cp= и всё,.... В совокупности с тем, что для
> смены пароля в настройках не требуется ввод старого пароля,
> это означает лёгкую возможность захвата ника....

session_id привязан к текущему ip. На случай интернет-кабаков могу пока посоветовать только чистить хистори после выхода. Чтобы не светился адрес, можно использовать режим с куками и чистить их перед уходом, но это еще опаснее.
неправда твоя 09.10.01 11:31  
Автор: paganoid Статус: Member
<"чистая" ссылка>
Что это за привязка к IP ?

Т.е, поставлю вопрос иначе, что это даёт? Это не праздный интерес. Вот сейчас я проделал следующую манипуляцию: зашел под своим логином без прокси и зашёл под своим логином с анонимного прокси. ИД разные. Но теперь я могу зайти в свой аккаунт И ПОД ТЕМ, И ПОД ДРУГИМ SESSION_ID CЛЮБОГОАДРЕСА (!)

ГДЕ_ПРИВЯЗКА_К IP ?

DL , открыть алгоритм генерации sess_id не так сложно (возможно).... Надо пересмотреть всю систему авторизации скрипта IMHO......



неправда твоя 09.10.01 12:40  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> Что это за привязка к IP ?
> Т.е, поставлю вопрос иначе, что это даёт? Это не праздный
> интерес. Вот сейчас я проделал следующую манипуляцию: зашел
> под своим логином без прокси и зашёл под своим логином с
> анонимного прокси. ИД разные. Но теперь я могу зайти в свой
> аккаунт И ПОД ТЕМ, И ПОД ДРУГИМ SESSION_ID CЛЮБОГО
> АДРЕСА (!)

> ГДЕ_ПРИВЯЗКА_К IP ?
> DL , открыть алгоритм генерации sess_id не так сложно
> (возможно).... Надо пересмотреть всю систему авторизации
> скрипта IMHO......

crypt(substr($ip, 5), substr($pass, 3));
хм... 09.10.01 14:54  
Автор: paganoid Статус: Member
<"чистая" ссылка>
> > Что это за привязка к IP ?
> > Т.е, поставлю вопрос иначе, что это даёт? Это не
> праздный
> > интерес. Вот сейчас я проделал следующую манипуляцию:
> зашел
> > под своим логином без прокси и зашёл под своим логином
> с
> > анонимного прокси. ИД разные. Но теперь я могу зайти в
> свой
> > аккаунт И ПОД ТЕМ, И ПОД ДРУГИМ SESSION_ID CЛЮБОГО
> > АДРЕСА (!)
> > ГДЕ_ПРИВЯЗКА_К IP ?
> > DL , открыть алгоритм генерации sess_id не так сложно
> > (возможно).... Надо пересмотреть всю систему
> авторизации

> > скрипта IMHO......
>
> crypt(substr($ip, 5), substr($pass, 3));

хорошо что $pass в параметрах ф-ии есть :)

все равно как-то неспортивно..
впрочем, сдаюсь, что я привязался..
хм... 09.10.01 18:24  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> > crypt(substr($ip, 5), substr($pass, 3));
> хорошо что $pass в параметрах ф-ии есть :)
> все равно как-то неспортивно..
> впрочем, сдаюсь, что я привязался..

Я открыт для любых предложений :)
Как бы есть всего два способа передавать сессию - либо через куки, либо через спрятанные поля/куски ссылок. На форуме используются оба. В режиме с включенными куками после нажатия "выход" все сбрасывается.
В принципе, есть еще вариант закрытия каталога средствами апача, и он, в общем-то, работает, но к общему использованию я его пока не готовил.
хм... 09.10.01 19:05  
Автор: paganoid Статус: Member
<"чистая" ссылка>
> > > crypt(substr($ip, 5), substr($pass, 3));
> > хорошо что $pass в параметрах ф-ии есть :)
> > все равно как-то неспортивно..
> > впрочем, сдаюсь, что я привязался..
>
> Я открыт для любых предложений :)

;)

я все еще не могу понять, как же это по приведенной схеме мне удаётся войти под разными sessid с одного ip ....

> Как бы есть всего два способа передавать сессию - либо
> через куки, либо через спрятанные поля/куски ссылок.

Это понятно. Просто, честно говоря, первый раз вижу такую схему.
Обычно так - зашёл, получил случайный sess_id, который занёсся в базу,
нажал "выход" - из базы sessid вытерли. И всё. Больше не зайдёшь.

А тут как-то.. хм... Вот всё думаю, что же тут не так, помимо возможности повторного входа ... Ну и про ф-ю crypt. Вот тут на сервере используется crypt с 9-значным salt (вроде) . Это хорошо. А обычно 2х значный. Если бы и тут был двухзначный, то всё бы это очень быстро ломалось перебором.

Т.е. вставил URL, все по нему сходили, записал IP всех людей, прикинул приблизительно ху из ху, и начинаешь шпарить маленький короткий перебор по всем 2значным комбинациям salt...

>На форуме используются оба. В режиме с включенными куками
> после нажатия "выход" все сбрасывается.

Угу, я подметил.

> В принципе, есть еще вариант закрытия каталога средствами
> апача, и он, в общем-то, работает, но к общему
> использованию я его пока не готовил.

тогда будет выскакивать это жуткое окно , енто не красиво... хотя...
хм... 09.10.01 19:35  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> я все еще не могу понять, как же это по приведенной схеме
> мне удаётся войти под разными sessid с одного ip ....

Я тоже :)

> > Как бы есть всего два способа передавать сессию - либо
> > через куки, либо через спрятанные поля/куски ссылок.
> Это понятно. Просто, честно говоря, первый раз вижу такую
> схему.
> Обычно так - зашёл, получил случайный sess_id, который
> занёсся в базу,
> нажал "выход" - из базы sessid вытерли. И всё. Больше не
> зайдёшь.

Ну можно, конечно. Просто этот вариант вообще всегда рассматривался как вторичный, возмущавшихся им до сих пор не было.

> А тут как-то.. хм... Вот всё думаю, что же тут не так,
> помимо возможности повторного входа ... Ну и про ф-ю crypt.
> Вот тут на сервере используется crypt с 9-значным salt
> (вроде) . Это хорошо. А обычно 2х значный. Если бы и тут
> был двухзначный, то всё бы это очень быстро ломалось
> перебором.
> Т.е. вставил URL, все по нему сходили, записал IP всех
> людей, прикинул приблизительно ху из ху, и начинаешь
> шпарить маленький короткий перебор по всем 2значным
> комбинациям salt...

Угу, только не очень понятно, как прикидывать, ху из ху :) К тому же у большинства в настройках стоит использование cookie, при котором проверка идентификатора в поле не проводится... Кроме того, я не обещал, что дал абсолютно точный вид функции :)
хм... 10.10.01 11:02  
Автор: paganoid Статус: Member
<"чистая" ссылка>
> > я все еще не могу понять, как же это по приведенной
> схеме
> > мне удаётся войти под разными sessid с одного ip ....
>
> Я тоже :)

уже не удаётся ;о . Обман зрения...

> > Вот тут на сервере используется crypt с 9-значным
> salt
> > (вроде) . Это хорошо. А обычно 2х значный. Если бы и
> тут
> > был двухзначный, то всё бы это очень быстро ломалось
> > перебором.

кстати вроде он всётки двузначный..

> > Т.е. вставил URL, все по нему сходили, записал IP всех
> > людей, прикинул приблизительно ху из ху, и начинаешь
> > шпарить маленький короткий перебор по всем 2значным
> > комбинациям salt...
> Угу, только не очень понятно, как прикидывать, ху из ху :)

хм, очень просто. Сидишь и смотришь на того, "кто сейчас в чате" хехе. Как зашел к тебе на сервер - записал REMOTE_ADDR . На всякий случай еще и REFERER (вдруг куки выключены). Если лень сидеть, смотреть за списком юзеров, можно поглядеть по дате постинга сообщений.

> К тому же у большинства в настройках стоит использование
> cookie, при котором проверка идентификатора в поле не
> проводится... Кроме того, я не обещал, что дал абсолютно
> точный вид функции :)

это я заметил :)
от скуки всё пытаюсь подобрать :)

выходит crypt( какая_то_функция(время и/или rnd при входе, IP), crypt("пароль","имя пользователя") )

или

substr(crypt("пароль","имя пользователя"),0,x ) + какая_то_функция(время и/или rnd при входе, IP)

хм... 10.10.01 13:26  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> это я заметил :)
> от скуки всё пытаюсь подобрать :)
> выходит crypt( какая_то_функция(время и/или rnd при входе,
> IP), crypt("пароль","имя пользователя") )
> или
> substr(crypt("пароль","имя пользователя"),0,x ) +
> какая_то_функция(время и/или rnd при входе, IP)

Примерно так. Собственно, вчера я сюда уже добавил уникальный кусок идентификатора, сносящийся при выходе, так что спасибо за замечания :)

Правда, все равно остается шанс перехватить логин человека, сидящего за тем же прокси/маскарадом (типично для интернет-кафе, кстати), пока он еще не вышел.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach