Недавно обнаруженная известным IT Security специалистом Стефаном Эссером уязвимость в интерпретаторе PHP теоретически может затронуть миллионы веб-сайтов, на которых используется PHP<=5.2.5. Тебе интересно, в чем суть уязвимости? В статье я разобрал advisory бага по полочкам.
Баг затрагивает функции генерации псевдослучайных чисел rand() и mt_rand(). Зачастую они используются для создания паролей, сессий, кукисов и других различных конфиденциальных данных пользователя.
Rand() — это просто враппер для библиотеки libc rand(), а mt_rand() — враппер для генератора псевдослучайных чисел Mersenne Twister. Обе функции используют так называемый seed (семя), который можно задавать соответственно функциями srand() и mt_srand(). По дефолту сид представляет собой 32?битный DWORD (2 в 32 степени или 4294967296 комбинаций). Обычно такой длины достаточно, чтобы обеспечить криптографическую стойкость приложения. Ведь для брутфорса пароля, сгенерированного с помощью одной из этих функций, необходимо знать не только сид, но и сгенерированные на его основе числа. Впрочем, существует ряд ситуаций, в которых брутфорс вполне применим...
(
Читать дальше
)