URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 65389
[ Назад ]

Исходное сообщение
"Предсказуемость генерации идентификаторов сессий в PHP"

Отправлено opennews , 31-Мрт-10 11:45 
В коде генерации номеров уникальных пользовательских сессий и уникальных идентификаторов (uniqid) PHP найдена (http://seclists.org/fulldisclosure/2010/Mar/519) недоработка, позволяющая злоумышленнику предсказать другие номера последовательности, зная текущий номер сессии (например, войдя на форум можно подобрать номера сессий других пользователей). Проблема вызвана некорректной инициализацией генератора случайных чисел в PHP, начальные значение затравки для которого можно предсказать с достаточно высокой степенью вероятности.


Проблеме подвержены все версии PHP, включая 5.3.2. Интересно, что при выпуске версии PHP 5.3.2 (http://www.opennet.me/opennews/art.shtml?num=25680) разработчики знали о существовании данной проблемы и даже изменили метод инициализации генератора случайных чисел, но то изменение по сути сводилось к добавлению предсказуемой константы, т.е. принципиально не устраняло суть проблемы, а лишь защищало от определенного эксплоита. Защита от подобного рода проблем в пр...

URL: http://seclists.org/fulldisclosure/2010/Mar/519
Новость: http://www.opennet.me/opennews/art.shtml?num=26026


Содержание

Сообщения в этом обсуждении
"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено terminus , 31-Мрт-10 11:45 
php, такой php!

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено User294 , 01-Апр-10 03:25 
Можно подумать остальные без багов. Вон в яве вагон багов вообще нашли. С выполнением кода и прочая.

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Аноним , 31-Мрт-10 12:03 
будем юзать)

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено анонимс , 31-Мрт-10 12:24 
юзаем давно, спасибо разработчикам что думают не только о себе

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Mariman , 31-Мрт-10 15:44 
Ну... практического применения эта уязвимость никак не получит, поскольку чтобы реально подменить сессию нужно:
1. угадать с точностью до миллисекунд время захода юзеря
2. узнать точное время старта системы и обнуления этого самого счетчика
3. знать точное количество и их время срабатывания генератора этих самых случйных чисел.

Только в этом случае тело может "угадать" идентификатор сессии, создать у себя такую же куку и зайти в систему под этим юзерем.

А если в сессии имеется еще какой идентификатор, например от юзер-агента браузера, то к списку еще прибавляется обязятельное знание каким браузером и какой его версией зашло тело.

В общем, такое тело существовать не может или же оно является админом. А если, допустим, есть пароль рута (т.е. сломали), то на кой ляд нужны эти танцы с сессиями?


"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Аноним , 31-Мрт-10 16:16 
>1. угадать с точностью до миллисекунд время захода юзеря

В статье же вроде про секунды написано, в этом случае угадать не так сложно, с учетом  того, что на куче форумов можно посмотреть время нахождения юзера в online.

>2. узнать точное время старта системы и обнуления этого самого счетчика
>3. знать точное количество и их время срабатывания генератора этих самых случйных
>чисел.

По выданному сессионному id можно без проблем подобрать эти параметры.


>А если в сессии имеется еще какой идентификатор, например от юзер-агента браузера,

Там речь про дефолтные механизмы работы с сессиями.


"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Mariman , 01-Апр-10 11:25 
мало ли что в статье... а добавили миллисекунды. и еще... как по session_id() вычислить точное время старта системы и количество генераций? ведь сайтом в этот момент пользуются еще люди... их генерации тоже надо учитывать.
Так что это все смахивает на бред параноика.

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Timon , 31-Мрт-10 21:13 
можно же и побрутфорсить немного :)

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Герман , 06-Июн-13 18:50 
http://blog.ptsecurity.com/2012/08/not-so-random-numbers-tak...
не только возможно, но даже софт для этого можно скачать, с которым подбор значения session_id - меньше часа :)

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Nas_tradamus , 31-Мрт-10 17:19 
Так. Во Фряхе, Убунте и Дебиане php по-дефолту ставится с Suhosin-patch, что исключает возможность такого хака. Про другие дистры не знаю.

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено PereresusNeVlezaetBuggy , 31-Мрт-10 18:11 
>Так. Во Фряхе, Убунте и Дебиане php по-дефолту ставится с Suhosin-patch, что
>исключает возможность такого хака. Про другие дистры не знаю.

В pkgsrc-системах (NetBSD, DragonFly BSD…) и OpenBSD тоже.


"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено Hety , 01-Апр-10 00:47 
В джэйле сухосин не работает. GG

"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено PereresusNeVlezaetBuggy , 01-Апр-10 00:50 
>В джэйле сухосин не работает. GG

Хм. За jail не скажу, а в chroot на моих опёнковских серверах он чувствует себя прекрасно... В чём проблема с jail?


"Предсказуемость генерации идентификаторов сессий в PHP"
Отправлено User294 , 01-Апр-10 03:22 
> что исключает возможность такого хака.

Вот в такие моменты и появляется желание сказать спасибо майнтайнерам за то что они есть.