Можно было бы «разбить» хеш-код, добавив их данные в конец хешируемой строки и предсказать вывод хэш-функции.Позвольте мне проиллюстрировать это:
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> data = 'root|admin|author'
>>> str(hash('' + data) & 0x7FFFFFF);
'116042699'
>>> data = 'root|admin|authos'
>>> str(hash('' + data) & 0x7FFFFFF);
'116042698'
>>>
Пустая строка ('') - это секрет cookie, который вы упомянули как пустую строку.В этом конкретном примере, хотя он и не является реально используемым, можно увидеть, что хэш изменился на 1, а последний байт data
также изменился «на один».Теперь этот пример на самом деле не является эксплойтом (исключая тот факт, что создание имени пользователя в формате anything_here|admin
делает этого пользователя администратором), потому что после имени пользователя есть некоторые данные (слева направо), так что даже если вы создаете имя пользователя, которое очень близкок атакующему остальная часть строки меняет хэш совершенно нежелательным образом.Однако, если файл cookie был в форме 105770185|user07
вместо 105770185|user07||author
, вы легко могли бы создать пользователя "user08" или "user06" и вычислить для прогнозирования хэша (hometask: что такое хешдля "user08"?).