cookie enj

Discussion in 'Песочница' started by exT1ma4ka, 21 Jul 2013.

  1. exT1ma4ka

    exT1ma4ka New Member

    Joined:
    12 May 2010
    Messages:
    47
    Likes Received:
    2
    Reputations:
    5
    доброго времени суток, господа.

    итак, мы имеем сайт, имеем куки в следующем виде: 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:
    eyJ1c2VyIjp7InNvdXJjZSI6Im5ldyIsInBob3RvIjoiXC9hdmF0YXJcL3NcL9Cw0LLQsNGC0LDRgCIsImFjdGl2aXRpZXMiOm51bGwsInBob3RvX21lZGl1bSI6IlwvYXZhdGFyXC9tXC/QsNCy0LDRgtCw0YAiLCJyYXRpbmciOiIwIiwibGFzdF9uYW1lIjoi0YTQsNC80LjQu9C40Y8iLCJlbWFpbCI6ItC80YvQu9C+IiwiY29uZmlybSI6IjAiLCJwaG90b19iaWciOiJcL2F2YXRhclwvb1wv0LDQstCw0YLQsNGAIiwidXBkYXRlZCI6ItC00LDRgtCwIiwiYWJvdXQiOiLQv9GA0LjQstC10YIiLCJpZCI6ItGG0LjRhNGA0LAiLCJiaXJ0aGRheSI6ItC00YAiLCJjb21tZW50c19jb3VudCI6IjAiLCJnZW5kZXIiOm51bGwsImxpa2VzX2NvdW50IjoiMCIsImFkbWluIjoiMCIsImxvY2F0aW9uIjoi0LPQvtGA0L7QtCIsIm15X2NvbW1lbnRzX2NvdW50IjoiMjIiLCJiYW4iOiIwIiwic3Vic2NyaWJlIjoiMSIsImRlbGV0ZWQiOiIwIiwiYWN0aXZlZCI6ItCy0YDQtdC80Y8iLCJiYW5uZWRfdG8iOm51bGwsImNyZWF0ZWQiOiLQtNCw0YLQsCDRgdC+0LfQtNCw0L3QuNGPIiwic2hvcCI6IjAiLCJoaWRkZW4iOiIwIiwiZmlyc3RfbmFtZSI6ItC40LzRjyJ9LCJ0b2tlbiI6ItGD0L3QuNC60LDQu9GM0L3Ri9C5INGC0L7QutC10L0sINCz0LXQvdC10YDQuNGA0YPRjtGJ0LjQudGB0Y8g0L7QtNC40L0g0YDQsNC3INC/0YDQuCDQutCw0LbQtNC+0Lwg0LLRhdC+0LTQtSDQvdCwINGB0LDQudGCICjQvdC1INC80LXQvdGP0LXRgtGB0Y8sINC/0L7QutCwINC90LUg0LLRi9C50LTQtdGI0YwpICJ9---ab4g8j0k4lo12vb56mn098rt5bu42cao65m23eg6
    после трёх чёрточек и есть этот "хэш" из 40 символов (переменную выдумал, для примера).

    итак, Джентльмены, - в какую сторону думать ?
     
    #1 exT1ma4ka, 21 Jul 2013
    Last edited: 21 Jul 2013
  2. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    думаю в правую сторону,бро!
    А вообще забудь это.
     
  3. exT1ma4ka

    exT1ma4ka New Member

    Joined:
    12 May 2010
    Messages:
    47
    Likes Received:
    2
    Reputations:
    5
    мне нужны не слова, а обоснования. почему мне следует забыть об этом ?
     
  4. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    Потомучто тебе нужно учить основы.
    Тут нету cookie enj.
     
  5. exT1ma4ka

    exT1ma4ka New Member

    Joined:
    12 May 2010
    Messages:
    47
    Likes Received:
    2
    Reputations:
    5
    хмм.. если есть переменные, и они считываются сайтом, - выходит их можно подменить. если нельзя, - можно попробовать провести sql inj прямо через сессию на этих переменных, т.к очевидно что они обращаются к базе. в чём я не прав ?
     
    1 person likes this.
  6. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    Тебе уже я ответил.
     
  7. exT1ma4ka

    exT1ma4ka New Member

    Joined:
    12 May 2010
    Messages:
    47
    Likes Received:
    2
    Reputations:
    5
    - пап, можно я пойду поиграю ?
    - нет, забудь про это
    - но почему ? игрушки ведь есть
    - ты не сможешь поиграть, я тебе уже ответил

    из такого разряда.
     
  8. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    Так будешь с отцом разговаривать.
    На сайте отсутсвует уязвимость данного рода.
    Чтобы её применить должен быть кривой код,а не то что ты написал исходя из своих фантазий
     
  9. exT1ma4ka

    exT1ma4ka New Member

    Joined:
    12 May 2010
    Messages:
    47
    Likes Received:
    2
    Reputations:
    5
    я не упомянул сайт.. откуда такие познания ?
     
  10. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    ***** из опыта,****!ИЗ ОПЫТА!
    Тролль.
     
  11. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    Понимаешь,exT1ma4ka!Что бы тут была уязвимость,надо поставить ковычку и при обновлении страницы должны быть sql ошибка,которая скажет о налиции уязвимости.
    То что ты делаешь вообще к уязвимостям не относится
    С Уважением,InDuStRieS!
     
  12. exT1ma4ka

    exT1ma4ka New Member

    Joined:
    12 May 2010
    Messages:
    47
    Likes Received:
    2
    Reputations:
    5
    ты по-моему не понимаешь в чём дело. инъекция в куки, так ? справа - ключ, слева - сама сессия в base64. ключ является проверкой сессии на корректность (отсутствие левых элементов, кавычек, итд). когда ключ не совпадает - сессия не пашет. ты говоришь о чём-то другом.

    ставлю вопрос так: каким алгоритмом может быть произведена проверка сессии через хэш ? 40 символов - Sha 1, но я не могу получить туже сумму при переводе чистой сессии или же base64 кода в неё. что-то тут не так.
     
  13. H3L1X

    H3L1X Active Member

    Joined:
    10 Apr 2012
    Messages:
    632
    Likes Received:
    215
    Reputations:
    170
    Возможно (в самом простом случае), некоторые поля из левой части проходят объединение, и результат такой вот конкатенации обсчитывается в хэш, который является проверкой, не подкрутил ли чего юзер в куках (его мы и видим в правой части). Вся проблема - узнать, какие параметры и каким образом между собой комбинируются. Тут есть величайшее множество возможных реализаций, которые наверняка можно узнать, лишь докопавшись до исходников сайта. В самом элементарном варианте, который я описал, узнать, какие переменные используются при генерации хэша, можно так:
    1. Меняем переменную, запоминаем, что поменяли. Хэш оставляем прежним.
    2. Отправляем кук на сервер.
    3. Вернул ошибку - переменная участвует в "формировании" хэша, нет - тестим следующую.

    Но здесь всё может пойти прахом (даже если мы узнаем, какие переменные проходят конкатенацию, а какие - нет), если потом они как-то модифицируются (например, между ними ставится тире, и от полученной строки считается хэш)... В общем, самый верный вариант - копать исходники, как ни крути.

    Если где-то сморозил глупость - сильно не бейте, просто высказал свои мысли, на практике ничем таким никогда заниматься не приходилось.

    Также думаю, что затея с куками слишком уж трудоёмкая, и стоит поискать более "классические" дырки типа sql-inj, инклудов или XSS'ок...
     
    1 person likes this.
  14. InDuStRieS

    InDuStRieS Banned

    Joined:
    15 Mar 2009
    Messages:
    526
    Likes Received:
    253
    Reputations:
    32
    жжете
    Поняша,тут и есть sql inj,только в куках)
    Но тут не уязвимо
     
    #14 InDuStRieS, 21 Jul 2013
    Last edited: 21 Jul 2013
  15. exT1ma4ka

    exT1ma4ka New Member

    Joined:
    12 May 2010
    Messages:
    47
    Likes Received:
    2
    Reputations:
    5
    H3L1X, тесты проводились, боюсь вся строка участвует в формировании хэша. даже когда переставляешь переменные местами - всё рушится.