Views
3 years ago

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

взлом RAND IS NOT

взлом RAND IS NOT RAND RAND IS NOT RAND RAND IS NOT RAND RAND IS NOT RAND RAND IS NOT RAND RAND IS NOT RAND RAND IS NOT RAND ELECT СЛУЧАЙНОСТИ НЕСЛУЧАЙНЫ RAND IS NOT RAND RAND IS NOT RAND ФАТАЛЬНАЯ ОШИБКА РАНДОМИЗАЦИИ В PHP Еще год назад Стефан Эссер поведал миру о предсказуемости генерации случайных чисел в PHP. Но, как это часто бывает, разработчики, да и программисты, не всегда адекватно реагируют на бюллетени безопасности (кто бы их, вообще, читал, а если и читал, то читал внимательно…). Что это? Лень? Человеческий фактор? Нежелание признавать и исправлять свои ошибки? Как бы то ни было, генератор случайных чисел PHP по-прежнему остается предсказуем. >> взлом Для правильного понимания сути уязвимости вспомним, что нам уже должно быть известно из статей Стефана Эссера, M4G'a и Raz0r'a. Материал в статьях, на мой взгляд, представлен подробно, но несколько разбросанно. Ставя один за другим эксперименты и разобравшись в деталях уязвимости, я набросал краткий курс по изучению. Полагаю, это поможет тебе более четко представить суть баги и вникнуть в тонкости процесса. НЕМНОГО ТЕОРИИ В PHP для генерации случайных чисел используется не сосед-программист, как в бородатом анекдоте, а две базовых функции на выбор: rand() и mt_rand(). Вторая предпочтительнее к использованию ввиду большей псевдослучайности генератора. Благодаря закономерностям в генерации значений возможны атаки на код, использующий эти функции, например, при генерации или сбросе паролей. Поясним, как это можно использовать, вызвав уязвимость. Во-первых, энтропия последующего вызова rand (mt_rand) зависит от результата предыдущего вызова функции, именно поэтому алгоритм псевдослучаен. Однако начальный SEED можно задать через функцию с приставкой 's': srand (mt_srand). То есть, зная начальный SEED, мы можем повторить генерацию на любом компьютере, сгенерировав всю цепочку якобы случайных вызовов rand (mt_rand), и получить при этом абсолютно те же числа, что и в оригинальном приложении на удаленном сервере. Во-вторых, начальный SEED зачастую через srand (mt_srand) вообще не задают (по забывчивости или человеческой глупости). А если функция srand (mt_srand) не была вызвана (либо вызвана без параметров), то PHP задает начальный SEED самостоятельно. Проблема в том, что такой SEED не превышает числа 2^32, а это число можно банально перебрать. Разберемся в особенностях генерации, когда начальный SEED задается PHP самостоятельно ввиду отсутствия вызова srand (mt_srand). Главная особенность rand (srand) заключается в том, что для функций возвращаемый результат различен под *nix и Windows. ПРАКТИКУЕМ УЯЗВИМОСТЬ Результат предыдущего вызова rand() используется в чистом виде как начальный SEED для следующего вызова rand(). По сути: "$SEED=rand();srand($seed);$SEED=r and();...". 040 XÀÊÅÐ 07 /127/ 09

RAND IS NOT RAND RAND IS NOT RAND >> взлом LOG EXPLOIT: XMB 1.9.11 RANDOM PASSWORD RESET VULNERABILITY Это очень полезно знать, так как не требуется искать начальный SEED, ведь его можно просто получить через вывод результата rand(), если таковой имеется. Здесь все предельно просто: имеем вывод rand() — имеем начальный SEED. Под WINDOWS результат вызова rand() (а значит, и начальный SEED) не превышает число 32767. Милый сердцу баг, — результат можно как два байта перебрать (спасибо Raz0r'у за исследование). Под *NIX все немного сложнее — максимальное число SEED составляет 2^32. Отмечу, что для mt_rand (mt_srand) имеет значение версия PHP. Для PHP 4.x.x=5.2.1 множество вариантов возвращаемых значений mt_rand() составляет 2^32. Максимальный начальный SEED, как и в предыдущем случае — mt_rand(2^32), но количество комбинаций здесь полное(2^32). ОСОБЕННОСТЬ ПЕРЕКРЕСТНОГО ВЛИЯНИЯ Функции rand (srand) и mt_rand (mt_srand) никак не влияют друг на друга. То есть, вызов srand() не повлияет на результат mt_rand() и наоборот. Это бывает важно, когда в приложении по какой-либо причине используются оба варианта генератора. Для осуществления атаки требуются следующие основные условия: 1. Мы должны прямо или косвенно иметь вывод rand (srand, mt_rand, mt_srand) для вычисления начального SEED. 2. Сервер должен поддерживать Keep-Alive соединения. 3. PHP должен работать как модуль апача (не cgi и не fastcgi). XÀÊÅÐ 07 /127/ 09 PUNBB 1.2.16 BLIND PASSWORD RAND RAND RECOVERY VULNERABILITY 4. Адский патч безопасности сухошина (suhoshin) не должен быть установлен. При выполнении всех условий PHP-процесс, обслуживающий соединение с обоими субдоменами, будет одним и тем же. Это даст зависимость между вызовами функций генераторов. В БОЙ! Для начала вспомним, как проводились атаки годичной давности: 1. Веб-приложение может само иметь прямой, либо косвенный вывод результата работы генератора. Данному случаю соответствует эксплоит под Wordpress посредством восстановления пароля зарегистрированному юзеру, а затем и администратору (milw0rm.com/exploits/6421). Соответственно, из почты юзер узнает токен восстановления пароля, где по самому токену вычисляется начальный SEED. 2. Возможно осуществить кросс-атаку через веб-приложение, расположенное на субдомене данного сервера. На данном принципе основан эксплоит Raz0r'a к Wordpress'у через PhpBB на субдомене, где PhpBB выводит mt_rand в результатах поиска (raz0r.name/wp-content/uploads/2008/08/wp1. html). 3. Начальный SEED можно получить лобовым брутфорсом либо брутфорсом по предварительно сгенерированной радужной таблице готовых значений вызовов rand (mt_rand). Как пример, эксплоит Raz0r'a «SMF

Скачать - Xakep Online
ИюНь - Xakep Online
Май - Xakep Online
Ноябрь - Xakep Online
ЛУЧШИХ ВИРУСОВ - Xakep Online
JIT SPRAY АНАЛИЗ TDSS - Xakep Online
Скачать - Xakep Online
Январь - Xakep Online
ЛЕГКИЙ ХАК - Xakep Online
КОНКУРС - Xakep Online
Офисное западло - Xakep Online
ВЗЛОМ ИНТЕРНЕТ-МАГАЗИНА: - Xakep Online
7 ЧУДЕС KDE - Xakep Online
Ноябрь - Xakep Online
Скачать - Xakep Online
Взлом GSM - Xakep Online
Untitled - Xakep Online
WebMoney - Xakep Online
с татьи - Xakep Online
сишься, что левые трояны, вирусы и всякая про ... - Xakep Online
cамые лучшие материалы 1-4 номеров + вся ... - Xakep Online
2009 - Xakep Online
c-лето ;) - Xakep Online
содержание 10 (59) - Xakep Online
PDF - Xakep Online
ЗАКАДРИ КАРДИНГ НАШИ ИДУТ! - Xakep Online
PDF - Xakep Online
PDF - Xakep Online