PDA

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


Mixon
25.09.2009, 21:07
Здравствуйте уважаемые ачатовцы,сейчас актуальный вопрос о новых куках вконтакте,видел не одну тему где выясняли и спорили насчёт них,вот хочу рассказать об своих экспериментах с ними и чтобы не создавались новые темы по этому поводу.
Всем известно что после 13.09.09 теперь в куках храниться только remixsid,но и в нём то не без хитрости,я посидел и пробивал разные способы входа по ним,вот такие неутешительные результаты с моих тестов:

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

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

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

<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='17b1bfber144d30b13d2557c29c141fd61f1e2843e9 5ed11f396efa5'></form></body></html>

Тут мы видим,что в ответ нам прислали уже новый remixsid для передачи со страницы...

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

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

<html></html>

и записывается в куки новый remixsid,а именно 56fdc0ecf38774088cac86d5c1be1514ee0828428264217e34 d061e0

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>
<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('nonenon e') != -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><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 со значением 482eec34a42374aab06e2766039161f6db292550c115f5c7da ac1908

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

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

<html></html>

И запись в куки нового remixsid,а именно 482eec34a42374aab06e2766039161f6db292550c115f5c7da ac1908

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,если всё же определит что последний вход в этот профиль был именно с этого компа.

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

Пуховой
25.09.2009, 22:24
Что можете сказать по поводу параметров l и p в cookies?

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

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

Также можно попробовать кое-что сменить:
id: id нашей страницы меняем на id чужой (вот только как его достать)
IP_ADDRESS: 10.11.13.11
request_method: get
pda :

Mixon
25.09.2009, 23:49
Что можете сказать по поводу параметров l и p в cookies?
В принципе ничего,я пока рассматриваю авторизацию вконтакте,а она зависит только от сессии,это уже проверялось не раз...поэтому думаю эти параметры вовсе не относятся к входу в вконтакте...

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

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

Также можно попробовать кое-что сменить:
id: id нашей страницы меняем на id чужой (вот только как его достать)
IP_ADDRESS: 10.11.13.11
request_method: get
pda :

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

Пуховой
26.09.2009, 00:10
Mixon, вы уверены, что IP сменили? Попробуйте с совершенно левого компьютера - все и выяснится.

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

Mixon
26.09.2009, 00:16
Mixon, вы уверены, что IP сменили? Попробуйте с совершенно левого компьютера - все и выяснится.

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

Пуховой
26.09.2009, 00:22
Mixon, не думаю, что из-за железа. Я, все же, грешу на IP.

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

Можно попробовать сэмулировать полностью заголовки запроса, банально скопировать, и посмотреть, что будет.

GlooK
26.09.2009, 00:22
Потому как привязка к машине,а это просто проверка на капчу или что либо...Но это не проверено...Узнать бы к чему еще вяжется акк,было бы вовсе чудесно...

Максимум, что они могу определить, это информация указанная в хидах HTTP запроса и IP.


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. Снифайте трафик, сравнивайте пакеты и ищите отличия.

Fepsis
26.09.2009, 00:29
А может и так..(
:confused: :confused: :confused: :rolleyes: :rolleyes: :rolleyes:

Пуховой
26.09.2009, 00:30
GlooK, это все понятно. Однако, когда нет отличий, грешить приходится именно на IP адрес.

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

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

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

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

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

Не совсем...
Вот смотри,есть два компьютера,разных,пусть назовём их Linux и Windows...
Если ты вошел в акк с Linux,и сменил на нём IP,то тебя переадресует на твою страницу.
Но если ты вошел с Windows на этот же акк,взял сессию и вставил в Линукс (на котором уже был когда то вход в этот профиль) то тебя выбросит на главную...
Их привязка идёт к одному компьютеру,но к разным его IP!


Максимум, что они могу определить, это информация указанная в хидах HTTP запроса и IP.

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

Пуховой
26.09.2009, 09:15
Mixon, напишите по пунктикам, что можно сэмулировать, если есть время и желание, будем пробовать.

Mixon
26.09.2009, 09:26
Есть параметры которые нельзя никак подделать,например IP свой как таково ты не поставишь...
Вот сейчас сижу и роюсь в phpinfo,и вот какой параметр мну заинтересовал,имя компьютера,только тут непонятно,это имя компьютера который подключился или имя компьютера на котором стоит сервер...
А как таково то надо думаю мутить с хидерами пока,остально всёравно походу подменить невозможно как таково...
Сейчас вот такая идея в голову стукнула...А серверу даты создания куков доступны???
Если да,то могли сравнивать,когда создан кук на одном компьютере а когда на другом...

Пуховой
26.09.2009, 09:30
Mixon, подменить возможно все, было бы желание (имхо). Вопрос в целесообразности :)

Mixon
26.09.2009, 09:34
Ну ну,подмени свой IP на 123.123.123.123 я посмотрю)))

Пуховой
26.09.2009, 09:48
Mixon, зачем? ;) Я ведь говорю - вопрос в целесообразности телодвижений :)

Mixon
26.09.2009, 10:15
Не понял...ну мы вовсе сошли с темы...лучше давай с ссид что то мутить а не тут обговаривать фиг знай что))

Пуховой
26.09.2009, 10:26
Mixon, это да. Сегодня еще раз попробую пошагово все отпарсить, все что утекает и притекает обратно, потом сэмулировать на другом, рабочем ПК. Результаты опишу здесь.

Mixon
26.09.2009, 10:29
Ок,поддерживаешь идею,молодца))

bro's
27.09.2009, 21:06
было б не плохо реализовать скриптик java как был раньше)))
только как((

GlooK
27.09.2009, 23:13
Ты глубоко ошибаешься! В стандартном HTTP запросе как таково передаёться множество параметров кроме этого...Смотри ф-цию phpinfo...

phpinfo() - http://www.1gb.ru/phpinfo.php

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

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

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

ErrorNeo
30.09.2009, 00:47
Mixon - молодец, что провел изыскания.
теме ап. полезно

vasy1980-8
30.09.2009, 13:59
Там есть некий параметр p=
Вместе с ним и sid можно на любом компе зайти.

stasik
02.10.2009, 04:54
что за параметр p= ?

vasy1980-8
02.10.2009, 20:27
p - кука для vk.com
кароче бесполезняк всё это. я раньше тысячами куки таскал, теперь хер возьмешь куки с vk.com, там редирект гребаный.

ZnikiR
03.10.2009, 23:53
Паша Дуров молодец.
Так попробывал из одного браузера подменить куку в другом,
всё работает.Зашел на подменненый акк.А не на свой.

Затем поменял ip всё повторил и тогда меня кинуло на страницу авторизации.

Артик
04.10.2009, 04:03
Почитал бред по-поводу привязки к железу, аж смешно стало :)
Логинимся. Удаляем нафик все куки vkontakte.ru
Заходим на главную - бац и мы авторизировались...
А всего-то оно еще на login.vk.com сохраняет куки "p" (эта ваша "привязка") и "l" (айдишник).
Это сделали для того, что бы никаким xss нельзя было спереть драгоценную "p" куку...

Сделано очень просто и гениально :)

xFF
06.10.2009, 12:08
К "аппаратной привязке" HTTP заголовки не имеют никакого значения, делается через javascript.
Только это не значит что там оно есть ;)

Артик
06.10.2009, 19:17
xFF
Я объяснил постом выше, как делается привязка...

Lazy_bones
09.10.2009, 10:37
Ребят я чутка другую привязку заметил у себя! У меня дома несколько компов и 2 провайдера, вот какая история! Делаю куки я на первом компе на первом провайдере, все сделал, все заходит, переключаю провайдера на этом же компе, все показывает что все куки невалид и не по одному не заходит, переключаю на первого провайдера на этом же компе и все куки валид и все работает! переношу куки на другой комп и ставлю первого провайдера, все работает, пробую на втором компе врубить второго провайдера и пробую куки, то все не пашут! Причем на первом провайдере, на котором делал куки и на котором они работают, IP динамический, а на втором провайдере висит порядка 200компов в сети, но все равно исходящий ip 1 на всех! Такая же чушь, если поменять провайдеры, то она втором все будет работать, а на первом нет!

Mixon
09.10.2009, 20:30
хм,не знаю не знаю,вобще я же проводил експеремент с проксей,тоисть подменой IP,тогда куки не мрут,заходит норм,а при смене провайдера походу токо IP меняеться...

Lazy_bones
09.10.2009, 22:08
ну там может привязка не совсем идет к IP а может как то к подсети провайдера, потому что провайдеры супер разные!

Mixon
29.11.2009, 13:41
Я провайдеров менял,куки жили...

Lazy_bones
29.11.2009, 14:02
Ну тот момент, когда ты менял провайдера и они жили был давно! Так как это уже давненько сменили! И привязка естЬ! Но она по подсети провайдера, но также не у каждого провайдера так! Также все зависит от программ, которыми пользуешься, если ты их имеешь в виду! Что они автоматом сейчас куки переделывают ... и имеется в виду сам провайдер а не твой IP

FEV
29.11.2009, 14:38
я правильно понимаю, что имея p куку с vk.com можно авторизоваться на любом компе?
если это так, то тырить её можно например троем, который либо снифает трафик (в этом случае лучше пасс и мыло тырить), либо парся файлы кукисов популярынх браузеров.

Nightmarе
29.11.2009, 14:50
Испытания тут конечно сделанны неплохие, ТС респект, что всё разобрал и разложил.
Меня интересует, почему никто ничего не написал про заголовок "User-Agent", многие системы защиты делают привязку или какую то хитрость именно к нему.
К примеру на нашем родном Античате привязка не только к IP, но и к юзер агенту, и ещё к чему то (не проверял точно).
Скорее всего [В]контакте действует сходим способом.
Да, и "User-Agent"далеко не единственный заголовок, есть ещё язык, форвардинг, VIA и т.д...

vvs777
29.11.2009, 15:04
привязка до сраки если куки тырит сниффер в лане выходящем через 1 шлюз?

FEV
10.12.2009, 18:58
Эксперименты показали, что для авторизации необходимо и достаточно знать только "l" и "p" куки с доменом login.vk.com.
Никаких привязок ни к IP, ни к чему бы то ни было еще, нет.

Jingo Bo
10.12.2009, 19:27
Мде... l и p даёт домен login.vk.com, они нужны для обновелния remixsid и для определения того нужно ли пароль сохранять или нет. Короче теоретически если убрать указать галочку "Запомнить", то не будут даваться эти куки. Это раз.
remixsid - это всего лишь идентификатор сессии, он даётся на время. Не зависимо от того на другом вы компе или нет, контакт рано или поздно попросит эти куки обновить и тут уже если вы поставили галочку "Запомнить", то будет создаваться новый remixsid, т.к. L и P есть. Это два.
remixsid - это просто хэш, из ниего нереально что то вынуть. Он создаётся на основе юзер агента, времени создания, IP, ID, и немного рандомной инфы. И при добавлении это всё сильно перемешивается и наверняка подвергается фильтру.

Skatbreaker
11.12.2009, 20:08
Я заранее извиняюсь... прочитал ТС сочинение, как я провел лето... неудовлетворило..

У меня всё работало,работает,и будет работать...
1)Качаем Flylink DC++
2)Ищем списки хабов, соотв своему городу.
3)В поиск вбиваем login.vk
4)Забираем все txt с этими куками.
5)l- логин p-пасс (хеши естественно)
6)В поиск вбиваем vkontakte
5)Забираем все txt , нам нужен только ремикссид
6)В опере подставляем всё соответственно


К примеру(рабочее)


мастер@vkontakte[1].txt

============
remixchk
5
vkontakte.ru/
1536
1242147584
30120846
2716728704
30045876
*
remixnews_privacy_filter
0
vkontakte.ru/
1600
3370861824
30065156
940328160
30045040
*
remixsid

6f2638288aa72d1b14d96b753ca04ac45920542fdaee4fc31c 1785ec

vkontakte.ru/
1024
901652608
30119302
3043608704
30045876
*
remixclosed_tabs
0
vkontakte.ru/
1600
3287586176
30118719
529815200
30046300
*
===============

мастер@login.vk[2].txt


===============


l
13096671
login.vk.com/
1024
1609780352
30117563
3040008704
30045876
*
p
5b162d1bd3978f3bac2aa099704d5cc540a5
login.vk.com/
1024
2054207232
30119533
3040008704
30045876
*
===========

Nightmarе
11.12.2009, 20:29
Другими словами зная MD5 пароля, можно залогиниться вконтакте под ним?

BLooD-FeRRuM
24.01.2010, 17:19
5b162d1bd3978f3bac2aa099704d5cc540a5
кто нибудь знает что это за хэш?
36 символов

#Specan
22.02.2010, 03:44
Почитал другие темы.
Везде одни догадки.
Определённого ничего.
Похоже, что тут совокупность хешей.
Однозначно тут зашифрованы UnixTime и IP.
Вот знать бы как.
И безвозвратно ли?

gothlike
22.02.2010, 13:36
хеш по определению является необратимым.

#Specan
22.02.2010, 19:15
Прикольно.
Я догадался.
А классно они их зашифровали))

desTiny
23.02.2010, 22:25
Прикольно.
Я догадался.
А классно они их зашифровали))
догадался как генерятся куки?
Если не хочешь говорить как - тогда скажи хотя бы, достаточно ли для авторизации md5 от пароля и произвольной инфы, которую всегда отправляет браузер?

#Specan
23.02.2010, 23:25
Сказать не скажу.
Но фича в том, что есть md5 от пасса и IP он тупо переводится в строку и кодится через базе 64.
Далее есть шифровальная функция она юзает ещё юникстайм.
Поэтому и куки получаются разные каждый раз.
Видимо правда контакт-сайт фсб.
Гражданские такое вряд ли придумают.
Защита там конешно...

desTiny
23.02.2010, 23:28
так достаточно мд5 пасса или нет?

#Specan
23.02.2010, 23:34
Нет конечно.