Новые cookies [В]контакте...Их секреты и хитрости в одной теме!

Discussion in 'Социальные сети' started by Mixon, 25 Sep 2009.

  1. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Здравствуйте уважаемые ачатовцы,сейчас актуальный вопрос о новых куках вконтакте,видел не одну тему где выясняли и спорили насчёт них,вот хочу рассказать об своих экспериментах с ними и чтобы не создавались новые темы по этому поводу.
    Всем известно что после 13.09.09 теперь в куках храниться только remixsid,но и в нём то не без хитрости,я посидел и пробивал разные способы входа по ним,вот такие неутешительные результаты с моих тестов:

    Скажу сразу,remixsid имеет привязку к вашему IP,но и не только к нему,и эта привязка скорее для удобства а не для зашиты,прочтя дальше мои тесты и выводы Вы в этом убедитесь. ;)

    Я пробовал сменять IP,но не железо,а именно IP...Делал так:
    1.Логинюсь вконтакте.
    2.Включаю прокси,который маскирует мой IP.
    3.Жму F5 (обновляю страницу).

    После этих действий идут запросы между вашим компьютером и вконтакте,а именно:
    1.GET запрос к http://login.vk.com/?vk=
    В ответ получает это:

    HTML:
    <html><head><meta http-equiv='content-type' content='text/html; charset=windows-1251' /></head><body onload="document.getElementById('l').submit();"><form id='l' method='post' action='http://vkontakte.ru/login.php?op=slogin'><input type='hidden' name='s' id='s' value='17b1bfber144d30b13d2557c29c141fd61f1e2843e95ed11f396efa5'></form></body></html>
    Тут мы видим,что в ответ нам прислали уже новый remixsid для передачи со страницы...

    2.POST запрос к http://vkontakte.ru/login.php?op=slogin с данными,переданными нам в первом шаге,а именно 17b1bfber144d30b13d2557c29c141fd61f1e2843e95ed11f396efa5

    и в ответ получаем это:

    HTML:
    <html></html>
    и записывается в куки новый remixsid,а именно 56fdc0ecf38774088cac86d5c1be1514ee0828428264217e34d061e0

    3.Потом шлётся POST запрос уже к вашей странице,с вашим ID в конце,а в нашем случае к http://vkontakte.ru/id1234
    В запросе указаны такие данные:

    id: 1234
    IP_ADDRESS: 10.0.13.3
    request_method: get
    pda :

    и в ответ получаем уже нашу собственную страницу вконтакте,на которой мы и были.


    Это мы разобрали какие действия контакт производит после смены IP на одном и том же компе,теперь рассмотрим случай который нам более интересен,заберём куки с чужого компа и вставим себе.



    Теперь выполняем эти действия:

    1.Логинимся на другом компе.
    2.Берём получивший remixsid.
    3.Подменяем его на своём компе и жмём F5 (Обновляем страницу).

    Контакт делает следующие манипуляции:

    1.После обновления страницы получаем этот ответ:

    HTML:
    <html>
    <head>
    <meta http-equiv='content-type' content='text/html; charset=windows-1251' />
    <script>
     var t = setTimeout("location.href='http://vkontakte.ru/login.php?op=logout'", 7000);
    </script>
    </head>
    <body>
     <div>
      <img src='http://vkontakte.ru/images/progress.gif'>
     </div>
     <form id='f' name='f' method='post' action='http://vkontakte.ru/id1234'>
      <input type='hidden' name='id' value='1234' /><input type='hidden' name='IP_ADDRESS' value='10.11.13.15' /><input type='hidden' name='request_method' value='get' /><input type='hidden' name='pda' value='' />
     </form>
     <iframe name="mf" onload="try{if (this.contentWindow.location.href.indexOf('slogin') != -1) {clearTimeout(t); if (this.contentWindow.location.href.indexOf('nonenone') != -1) {location.href='http://vkontakte.ru/login.php?op=logout&to=aWQ0Nzg2NDgwMw--'; return false;} document.f.submit();}} catch(e) {}" border=0 style='border:0px; background-color:#FFF' src='http://login.vk.com/?vk=' width='1' height='1'></iframe>
    </body>
    </html>
    2.Отправляет GET запрос к http://login.vk.com/?vk=
    Получает ответ:

    HTML:
    <html><head><meta http-equiv='content-type' content='text/html; charset=windows-1251' /></head><body onload="document.getElementById('l').submit();"><form id='l' method='post' action='http://vkontakte.ru/login.php?op=slogin'><input type='hidden' name='s' id='s' value='http://vkontakte.ru/login.php?op=slogin'></form></body></html>
    По нём мы видим что получили новый параметр s со значением 482eec34a42374aab06e2766039161f6db292550c115f5c7daac1908

    3. POST запрос к http://vkontakte.ru/login.php?op=slogin с данными 482eec34a42374aab06e2766039161f6db292550c115f5c7daac1908

    В ответ получаем это:

    HTML:
    <html></html>
    И запись в куки нового remixsid,а именно 482eec34a42374aab06e2766039161f6db292550c115f5c7daac1908

    4. Отправляет POST запрос уже к вашей странице,с вашим ID в конце,а в нашем случае к http://vkontakte.ru/id1234
    В запросе указаны такие данные:

    id: 1234
    IP_ADDRESS: 10.11.13.11
    request_method: get
    pda :

    и в ответ получаем старицу которой мы сменили remixsid, тоисть не та страница,которую мы взяли с другого компа а та,в которой мы билы до этого залогинены...

    То есть доступ к странице мы не получили,а нас тупо переадресовало в нашу,родную страницу...Самое хитрое то,что мы то сменяли уже remixsid в куках,а вот нам его уже от страницы контакт новый сам выдал,то ли по IP то ли я не знаю по чём...



    Выводы

    1.Заходить вконтакте с одного и того же компа но с другим IP можно.
    2.Взять куки с чужого компа и зайти со своего невозможно,по крайней мере не подменяя привязки,которой я пока еще не знаю.
    3.remixsid имеет привязку,и не одну,к IP привязка есть 100% но суть её не в том чтоб не могли зайти с другого компа,а чтоб получить новый remixsid на эту страницу для уже другого IP,если всё же определит что последний вход в этот профиль был именно с этого компа.

    Если Вы заметили еще какие то привязки или еще что то на подобии,описывайте здесь,буду рад любой помощи и новых тестов этих зависимостей вконтакте.
     
  2. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Что можете сказать по поводу параметров l и p в cookies?

    Также попробовал схитрить. Попросил свежую куку, зашел на свою страницу вконтакте, изменил remixsid и обновил. Действительно - переадресация на свою же страницу.

    Я думаю, при первом GET запросе на http://login.vk.com/?vk= идет проверка - авторизовывались ли с помощью логина / пароля для чужого аккаунта с этого IP. Если ранее не авторизовывались - идем нафиг. Это можно объяснить недавним экспериментом. Проверял на днях базу логинов / паролей. Разумеется, по разу авторизовывался на каждый аккаунт, с сохранением кук. Так вот сегодня куки работают, прекрасно себя чувствуют.

    Также можно попробовать кое-что сменить:
    id: id нашей страницы меняем на id чужой (вот только как его достать)
    IP_ADDRESS: 10.11.13.11
    request_method: get
    pda :
     
    #2 Пуховой, 25 Sep 2009
    Last edited: 25 Sep 2009
  3. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    В принципе ничего,я пока рассматриваю авторизацию вконтакте,а она зависит только от сессии,это уже проверялось не раз...поэтому думаю эти параметры вовсе не относятся к входу в вконтакте...

    нет! я уже писал,что IP тут практически роли не играет,сегодня,как я описал я проводил этот эксперимент со сменой моего IP,ранее акк на этом IP небыл никогда аворизирован...Я уже писал,что привязка идёт еще к чему то в компе,не только к IP,вконтакте записал еще какой то параметр твоего компа,только не IP,и всё работает идеально...

    1.Реально,ID не достать никак,потому как он более тоже не храниться в куках.
    2.Мне лично кажется что подмена абсолютно никакого толку не даст...Потому как привязка к машине,а это просто проверка на капчу или что либо...Но это не проверено...Узнать бы к чему еще вяжется акк,было бы вовсе чудесно...
     
  4. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Mixon, вы уверены, что IP сменили? Попробуйте с совершенно левого компьютера - все и выяснится.

    Далее можно попытаться подменять все заголовки запроса. Стандартный метод :) если уж и это не получится - искать баги в самой системе авторизации, более чем уверен, что они там есть. Все это, конечно, 99% результата не даст, но попытка - не пытка.
     
  5. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Вы видимо чего то не поняли...С совершенно левого компьютера не зайдёт никак,потому как железо другое,что я и пытался доказать первым постом темы!
    IP я точно сменил,я сам программист и уж поверьте,я могу нормально поставить прокси,которая маскирует мой IP полностью...
     
  6. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Mixon, не думаю, что из-за железа. Я, все же, грешу на IP.

    Подумаем логически - какие данные может получить веб-форма? Заголовки запроса, разве что... Не знаю.

    Можно попробовать сэмулировать полностью заголовки запроса, банально скопировать, и посмотреть, что будет.
     
    #6 Пуховой, 26 Sep 2009
    Last edited: 26 Sep 2009
  7. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    Максимум, что они могу определить, это информация указанная в хидах HTTP запроса и IP.

    Code:
    POST /login.php HTTP/1.1
    Host: vkontakte.ru
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru,en-us;q=0.7,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    X-Requested-With: XMLHttpRequest
    Referer: http://vkontakte.ru/
    Content-Length: 18
    Cookie: remixlang=X; remixchk=X; remixnews_privacy_filter=X; remixnews_types=X; remixgroup_closed_tabs=X; remixclosed_tabs=X; remixap=X; audio_vol=X; remixsid=X
    Pragma: no-cache
    Cache-Control: no-cache
    
    Тобишь useragent, cookie, referer...
    Так что привязки именно к железу быть не может.

    P.S. Снифайте трафик, сравнивайте пакеты и ищите отличия.
     
  8. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    А может и так..(
    :confused: :confused: :confused: :rolleyes: :rolleyes: :rolleyes:
     
    #8 Fepsis, 26 Sep 2009
    Last edited: 26 Sep 2009
  9. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    GlooK, это все понятно. Однако, когда нет отличий, грешить приходится именно на IP адрес.

    Грубо говоря - на компьютере, где был залогинен аккаунт, через idhttp грузим http://vkontakte.ru, перед этим сунув куки.

    На компьютере, где ни разу не был залогинен аккаунт, через idhttp грузим http://vkontakte.ru, перед этим сунув куки.

    Первый вариант - редирект на нужную страницу, второй - редирект на главную.
     
  10. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Не совсем...
    Вот смотри,есть два компьютера,разных,пусть назовём их Linux и Windows...
    Если ты вошел в акк с Linux,и сменил на нём IP,то тебя переадресует на твою страницу.
    Но если ты вошел с Windows на этот же акк,взял сессию и вставил в Линукс (на котором уже был когда то вход в этот профиль) то тебя выбросит на главную...
    Их привязка идёт к одному компьютеру,но к разным его IP!


    Ты глубоко ошибаешься! В стандартном HTTP запросе как таково передаёться множество параметров кроме этого...Смотри ф-цию phpinfo...
     
  11. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Mixon, напишите по пунктикам, что можно сэмулировать, если есть время и желание, будем пробовать.
     
  12. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Есть параметры которые нельзя никак подделать,например IP свой как таково ты не поставишь...
    Вот сейчас сижу и роюсь в phpinfo,и вот какой параметр мну заинтересовал,имя компьютера,только тут непонятно,это имя компьютера который подключился или имя компьютера на котором стоит сервер...
    А как таково то надо думаю мутить с хидерами пока,остально всёравно походу подменить невозможно как таково...
    Сейчас вот такая идея в голову стукнула...А серверу даты создания куков доступны???
    Если да,то могли сравнивать,когда создан кук на одном компьютере а когда на другом...
     
  13. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Mixon, подменить возможно все, было бы желание (имхо). Вопрос в целесообразности :)
     
  14. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Ну ну,подмени свой IP на 123.123.123.123 я посмотрю)))
     
  15. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Mixon, зачем? ;) Я ведь говорю - вопрос в целесообразности телодвижений :)
     
  16. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Не понял...ну мы вовсе сошли с темы...лучше давай с ссид что то мутить а не тут обговаривать фиг знай что))
     
  17. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Mixon, это да. Сегодня еще раз попробую пошагово все отпарсить, все что утекает и притекает обратно, потом сэмулировать на другом, рабочем ПК. Результаты опишу здесь.
     
  18. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Ок,поддерживаешь идею,молодца))
     
  19. bro's

    bro's New Member

    Joined:
    12 Jul 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    было б не плохо реализовать скриптик java как был раньше)))
    только как((
     
  20. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    phpinfo() - http://www.1gb.ru/phpinfo.php

    Что он такого определяет, о чем я не сказал выше?

    Если открыть пакет в снифере полностью, так чтобы отображались все протоколы, в которые "завернут" HTTP запрос, то можно увидеть что он передает. Кроме как SOURCE IP, SOURCE PORT, DESTINATION IP, DESTINATION PORT ничего полезного там нет. Такие параметры как mac-адрес убираются на первом рубеже провайдера.

    Поправьте, если не так...