exT1ma4ka
21.07.2013, 17:49
доброго времени суток, господа.
итак, мы имеем сайт, имеем куки в следующем виде: base64---рандомный хэш(?) из 40 символов с каждым обновлением страницы разный и имеем желание ломать.
если сделать декод base64, выходит следующее (некоторые данные по понятным причинам замазал):
Code:
{"user":{"source":"new","photo":"\/avatar\/s\/аватар","activities":null,"photo_medium":"\/avatar\/m\/аватар","rating":"0","last_name":"фамилия","email":"мыло","confirm":"0","photo_big":"\/avatar\/o\/аватар","updated":"дата","about":"привет","id":"цифра","birthday":"др","comments_count":"0","gender":null,"likes_count":"0","admin":"0","location":"город","my_comments_count":"667","ban":"0","subscribe":"1","deleted":"0","actived":"время","banned_to":null,"created":"дата создания","shop":"0","hidden":"0","first_name":"имя"},"token":"уникальный токен, генерирующийся один раз при каждом входе на сайт (не меняется, пока не выйдешь) "}
мы видим что тут очень много переменных, в том числе как и интересующая нас "admin: 0". казалось бы подменить и опааа. но стоит изменить любую одну букву\цифру, - как сессия становится недействительной и вылетаешь с пользователя.
вот тогда ты и начинаешь думать о второй части, которая после кода base64 - этом самом хэше. сказать что он уникальный ? - нет, я повторял одну и туже (исправную) сессию много раз и всё работало, выходит - каждый раз она хоть и меняется (ключ после base64), но если повторять её, работа не слетает. сдаётся нам что ключ не такой уж и уникальный.
выглядит в полном виде сессия так:
Code:
eyJ1c2VyIjp7InNvdXJjZSI6Im5ldyIsInBob3RvIjoiXC9hdm F0YXJcL3NcL9Cw0LLQsNGC0LDRgCIsImFjdGl2aXRpZXMiOm51 bGwsInBob3RvX21lZGl1bSI6IlwvYXZhdGFyXC9tXC/QsNCy0LDRgtCw0YAiLCJyYXRpbmciOiIwIiwibGFzdF9uYW1lI joi0YTQsNC80LjQu9C40Y8iLCJlbWFpbCI6ItC80YvQu9C+Iiw iY29uZmlybSI6IjAiLCJwaG90b19iaWciOiJcL2F2YXRhclwvb 1wv0LDQstCw0YLQsNGAIiwidXBkYXRlZCI6ItC00LDRgtCwIiw iYWJvdXQiOiLQv9GA0LjQstC10YIiLCJpZCI6ItGG0LjRhNGA0 LAiLCJiaXJ0aGRheSI6ItC00YAiLCJjb21tZW50c19jb3VudCI 6IjAiLCJnZW5kZXIiOm51bGwsImxpa2VzX2NvdW50IjoiMCIsI mFkbWluIjoiMCIsImxvY2F0aW9uIjoi0LPQvtGA0L7QtCIsIm1 5X2NvbW1lbnRzX2NvdW50IjoiMjIiLCJiYW4iOiIwIiwic3Vic 2NyaWJlIjoiMSIsImRlbGV0ZWQiOiIwIiwiYWN0aXZlZCI6ItC y0YDQtdC80Y8iLCJiYW5uZWRfdG8iOm51bGwsImNyZWF0ZWQiO iLQtNCw0YLQsCDRgdC+0LfQtNCw0L3QuNGPIiwic2hvcCI6IjA iLCJoaWRkZW4iOiIwIiwiZmlyc3RfbmFtZSI6ItC40LzRjyJ9L CJ0b2tlbiI6ItGD0L3QuNC60LDQu9GM0L3Ri9C5INGC0L7QutC 10L0sINCz0LXQvdC10YDQuNGA0YPRjtGJ0LjQudGB0Y8g0L7Qt NC40L0g0YDQsNC3INC/0YDQuCDQutCw0LbQtNC+0Lwg0LLRhdC+0LTQtSDQvdCwINGB0L DQudGCICjQvdC1INC80LXQvdGP0LXRgtGB0Y8sINC/0L7QutCwINC90LUg0LLRi9C50LTQtdGI0YwpICJ9---ab4g8j0k4lo12vb56mn098rt5bu42cao65m23eg6
после трёх чёрточек и есть этот "хэш" из 40 символов (переменную выдумал, для примера).
итак, Джентльмены, - в какую сторону думать ?
итак, мы имеем сайт, имеем куки в следующем виде: base64---рандомный хэш(?) из 40 символов с каждым обновлением страницы разный и имеем желание ломать.
если сделать декод base64, выходит следующее (некоторые данные по понятным причинам замазал):
Code:
{"user":{"source":"new","photo":"\/avatar\/s\/аватар","activities":null,"photo_medium":"\/avatar\/m\/аватар","rating":"0","last_name":"фамилия","email":"мыло","confirm":"0","photo_big":"\/avatar\/o\/аватар","updated":"дата","about":"привет","id":"цифра","birthday":"др","comments_count":"0","gender":null,"likes_count":"0","admin":"0","location":"город","my_comments_count":"667","ban":"0","subscribe":"1","deleted":"0","actived":"время","banned_to":null,"created":"дата создания","shop":"0","hidden":"0","first_name":"имя"},"token":"уникальный токен, генерирующийся один раз при каждом входе на сайт (не меняется, пока не выйдешь) "}
мы видим что тут очень много переменных, в том числе как и интересующая нас "admin: 0". казалось бы подменить и опааа. но стоит изменить любую одну букву\цифру, - как сессия становится недействительной и вылетаешь с пользователя.
вот тогда ты и начинаешь думать о второй части, которая после кода base64 - этом самом хэше. сказать что он уникальный ? - нет, я повторял одну и туже (исправную) сессию много раз и всё работало, выходит - каждый раз она хоть и меняется (ключ после base64), но если повторять её, работа не слетает. сдаётся нам что ключ не такой уж и уникальный.
выглядит в полном виде сессия так:
Code:
eyJ1c2VyIjp7InNvdXJjZSI6Im5ldyIsInBob3RvIjoiXC9hdm F0YXJcL3NcL9Cw0LLQsNGC0LDRgCIsImFjdGl2aXRpZXMiOm51 bGwsInBob3RvX21lZGl1bSI6IlwvYXZhdGFyXC9tXC/QsNCy0LDRgtCw0YAiLCJyYXRpbmciOiIwIiwibGFzdF9uYW1lI joi0YTQsNC80LjQu9C40Y8iLCJlbWFpbCI6ItC80YvQu9C+Iiw iY29uZmlybSI6IjAiLCJwaG90b19iaWciOiJcL2F2YXRhclwvb 1wv0LDQstCw0YLQsNGAIiwidXBkYXRlZCI6ItC00LDRgtCwIiw iYWJvdXQiOiLQv9GA0LjQstC10YIiLCJpZCI6ItGG0LjRhNGA0 LAiLCJiaXJ0aGRheSI6ItC00YAiLCJjb21tZW50c19jb3VudCI 6IjAiLCJnZW5kZXIiOm51bGwsImxpa2VzX2NvdW50IjoiMCIsI mFkbWluIjoiMCIsImxvY2F0aW9uIjoi0LPQvtGA0L7QtCIsIm1 5X2NvbW1lbnRzX2NvdW50IjoiMjIiLCJiYW4iOiIwIiwic3Vic 2NyaWJlIjoiMSIsImRlbGV0ZWQiOiIwIiwiYWN0aXZlZCI6ItC y0YDQtdC80Y8iLCJiYW5uZWRfdG8iOm51bGwsImNyZWF0ZWQiO iLQtNCw0YLQsCDRgdC+0LfQtNCw0L3QuNGPIiwic2hvcCI6IjA iLCJoaWRkZW4iOiIwIiwiZmlyc3RfbmFtZSI6ItC40LzRjyJ9L CJ0b2tlbiI6ItGD0L3QuNC60LDQu9GM0L3Ri9C5INGC0L7QutC 10L0sINCz0LXQvdC10YDQuNGA0YPRjtGJ0LjQudGB0Y8g0L7Qt NC40L0g0YDQsNC3INC/0YDQuCDQutCw0LbQtNC+0Lwg0LLRhdC+0LTQtSDQvdCwINGB0L DQudGCICjQvdC1INC80LXQvdGP0LXRgtGB0Y8sINC/0L7QutCwINC90LUg0LLRi9C50LTQtdGI0YwpICJ9---ab4g8j0k4lo12vb56mn098rt5bu42cao65m23eg6
после трёх чёрточек и есть этот "хэш" из 40 символов (переменную выдумал, для примера).
итак, Джентльмены, - в какую сторону думать ?