ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > SЕО/Финансовые задачи/Социальные сети > Социальные сети
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #31  
Старый 21.12.2009, 00:04
GlooK
Участник форума
Регистрация: 20.04.2007
Сообщений: 174
Провел на форуме:
2310282

Репутация: 149
По умолчанию

Цитата:
И зная этот sig я мог бы, насколько я понимаю, придставляться любым юзером, каким бы пожелал... кхм.
Имей ввиду, что кроме sig есть еще и auth_key, который уникален для каждого юзера.
А именно auth_key = md5(api_id + '_' + viewer_id + '_' + '_' + api_secret_s_vkladki_plateji)
 
Ответить с цитированием

  #32  
Старый 21.12.2009, 00:09
Eo0
Познающий
Регистрация: 12.09.2009
Сообщений: 61
Провел на форуме:
818777

Репутация: 19
По умолчанию

Цитата:
Сообщение от ErrorNeo  
кстати.
в моем случае вся "эффективная работа" работа идет вообще не с приложением контакта, а исключительно с сервером приложения.
Т.е. если бы я умел формировать sig, то смог бы вообще минуя сервера контакта достигать в нем (контакте) поставленных перед собой задач.
И куков там, естественно, никаких нет. Только sig. И зная этот sig я мог бы, насколько я понимаю, представляться приложению любым юзером, каким бы пожелал... кхм.

вообще странная система какая-то.
но если вы, ребята, так уверены, что secret_api действительно реально выдернуть из флешки....
возможно я попробую)
Реально, не зря написано
Цитата:
Защищенное взаимодействие обеспечивает безопасность транзакций с голосами, отсылки оповещений и обновления статусов. Стандартное взаимодействие в этих случаях невозможно: безопасность при участии клиентской стороны обеспечить невозможно, так как любой клиентский SWF-код декомпилируется.
 
Ответить с цитированием

  #33  
Старый 21.12.2009, 00:14
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

Цитата:
Сообщение от GlooK  
Имей ввиду, что кроме sig есть еще и auth_key, который уникален для каждого юзера.
А именно auth_key = md5(api_id + '_' + viewer_id + '_' + '_' + api_secret_s_vkladki_plateji)
мде.
на самом деле из всей серии запросов мне нужен только один...
запрос к серверу приложения, передающий в POST запросе примерно такие данные:

Код:
sig=0578eca6d293400808e43d939b46c6a3&
uid=9295448&vname=%25D0%2590{бред из знаков процента и цифр}%25D0%25B0
&method={тут метод}&vid=41929817&auth%5Fkey=291d6a6ec2841455b1e9f4799eb116e5
тут имеют место:
1. сиг
2. id первого юзера
3. имя
4. метод
5. id второго юзера
6. аутх-кей.

...
боюсь, что аутх-кей тоже нужен :'(
и, насколько я понимаю, "сурового" способа его получения - нет.

так что, видимо, нужно искать именно "белое" решение, т.е. получать эта значения так, как их получает браузер (?т.е. хз как)

Последний раз редактировалось ErrorNeo; 21.12.2009 в 00:19..
 
Ответить с цитированием

  #34  
Старый 21.12.2009, 00:17
GlooK
Участник форума
Регистрация: 20.04.2007
Сообщений: 174
Провел на форуме:
2310282

Репутация: 149
По умолчанию

браузер получает это все со страницы приложения http://vkontakte.ru/appXXXXXX

Код:
var flashVars = {"api_url":"http:\/\/api.vkontakte.ru\/api.php","api_id":XXXXXX,"api_settings":3,"viewer_id":"XXXXXX","viewer_type":2,"user_id":XXXXXX,"group_id":0,"is_app_user":"1","auth_key":"XXXXXXXXXXXXXX","language":0,"parent_language":0,"debug":0,"domain":"vkontakte.ru","scale":1,"width":"607","height":"590","swf_url":"http:\/\/cs4567.vkontakte.ru\/u45724907\/dada588219143a.zip"};
 
Ответить с цитированием

  #35  
Старый 21.12.2009, 00:22
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

т.е. без эмулятора флэш тут не обойтись?)
я так понимаю http аналога данного запроса не суещствует
 
Ответить с цитированием

  #36  
Старый 21.12.2009, 00:27
GlooK
Участник форума
Регистрация: 20.04.2007
Сообщений: 174
Провел на форуме:
2310282

Репутация: 149
По умолчанию

Ну как же...

1. Авторизуемся в ВК
2. Заходим на страницу http://vkontakte.ru/app123456
3. Парсим HTML и достаем viewer_id и auth_key
4. Формируем запрос POST
 
Ответить с цитированием

  #37  
Старый 21.12.2009, 06:32
Dr1ver
Участник форума
Регистрация: 20.08.2008
Сообщений: 137
Провел на форуме:
2607957

Репутация: 184
По умолчанию

Код:
class API
{
    var firstChild;
    static var __get__stackCount, __get__timeNow;
    function API()
    {
    } // End of the function
    static function init(_secret_code, _api_id, _testMode)
    {
        apiId = _api_id || _root.api_id;
        userId = _root.user_id;
        groupId = _root.group_id;
        viewerId = _testMode || _root.viewer_id;
        viewerType = _root.viewer_type;
        isAppUser = _root.is_app_user;
        authKey = _root.auth_key;
        secretCode = _secret_code;
        APIversion = "2.0";
        if (_testMode)
        {
            testMode = true;
        } // end if
        API.getServerTime(function (_time)
        {
            var _loc1 = _time * 1000;
            var _loc2 = new Date().getTime();
            deltaT = _loc2 - _loc1;
            lastReq = _loc1;
            API.onInit(_time ? (true) : (false));
        }, null, null, true);
        setInterval(API.send, 400);
        setInterval(API.tv_send, 400);
    } // End of the function
    static function get timeNow()
    {
        var _loc2 = new Date().getTime();
        var _loc1 = _loc2 - API.deltaT;
        return (Math.floor(_loc1 / 1000));
    } // End of the function
    static function sendRequest(_method, _params, _onComplete, _obj)
    {
        _params.method = _method;
        _params.api_id = API.apiId;
        _params.v = API.APIversion;
        if (API.testMode)
        {
            _params.test_mode = 1;
        } // end if
        var _loc2 = new LoadVars();
        var _loc3 = new Array();
        for (var _loc4 in _params)
        {
            _loc2[_loc4] = _params[_loc4];
            _loc3.push(_loc4 + "=" + _params[_loc4]);
        } // end of for...in
        _loc3.sort();
        var _loc8 = API.viewerId + _loc3.join("") + API.secretCode;
        _loc2.sig = md5.encrypt(_loc8);

Последние 2 строчки - sig.

Код:
var _loc8 = API.viewerId + _loc3.join("") + API.secretCode;
        _loc2.sig = md5.encrypt(_loc8);

обьясните по человечески что такое _loc3.join("") и откуда оно берётся, всё остальное есть.


Обьясните на примере этой батвы, какой алгоритм у этого sig

Последний раз редактировалось Dr1ver; 21.12.2009 в 11:47..
 
Ответить с цитированием

  #38  
Старый 21.12.2009, 11:35
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

Цитата:
Сообщение от GlooK  
Ну как же...

1. Авторизуемся в ВК
2. Заходим на страницу http://vkontakte.ru/app123456
3. Парсим HTML и достаем viewer_id и auth_key
4. Формируем запрос POST
(!!!)
да, на странице приложения действительно можно спарсить
api_id, viewer_id, user_id и auth_key, и несколько других параметров, передаваемых в приложение через flashVars.
Ну а сразу после flashVars идет как раз адрес приложения-swf'ки.

Так что проблема теперь остается только за формированием sig,
для чего, видимо, потребуется декомпилить эту swf'ку.

Dr1ver - sig это обычная ф-ция md5(user_id,request_params,secret_api).
Т.е., к примеру, md5 от строки
6492api_id=4method=getFriendsv=2.0secret

Насколько я понял, _loc3 это массив из параметров и их значений. Ну а join, видимо, команда для превращения массива в строку.

Последний раз редактировалось ErrorNeo; 21.12.2009 в 12:10..
 
Ответить с цитированием

  #39  
Старый 21.12.2009, 11:45
Dr1ver
Участник форума
Регистрация: 20.08.2008
Сообщений: 137
Провел на форуме:
2607957

Репутация: 184
По умолчанию

Цитата:
Сообщение от ErrorNeo  
(!!!)

Dr1ver - sig это обычная ф-ция md5(user_id,request_params,secret_api).
Т.е., к примеру, md5 от строки
6492api_id=4method=getFriendsv=2.0secret
где 6492 - id юзера, 4 - id группы (как я понял), метод это метод, ну и v= {secret_api}

это понятно, мне бы request_params , я их в упор не вижу, я на AS переменную от функции не отличаю, а там целый класс.
 
Ответить с цитированием

  #40  
Старый 21.12.2009, 11:56
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


Отправить сообщение для ErrorNeo с помощью ICQ
По умолчанию

APIversion = "2.0";
apiId = _api_id || _root.api_id;
метод не нашел, но его ты ведь сам выбираешь для каждого отдельного запроса.
Видимо это глобальная переменная, не указанная в твоем коде

_params.method = _method;
_params.api_id = API.apiId;
_params.v = API.APIversion;

эти 3 строки формируют массив, и он превращается в строку:
api_id=4method=getFriendsv=2.0
похоже?
ну а перед строкой ставится user_id - 6492, а в конце добавляется secret_api и получается
6492api_id=4method=getFriendsv=2.0secret
от этого всего берется md5 и получается sig.
вообще спс за приведенный код. наглядный

Последний раз редактировалось ErrorNeo; 21.12.2009 в 12:00..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы API Вконтакте SoulReaver Социальные сети 0 12.08.2009 15:46
Вопрос по рейтингу вконтакте! eskimo170 Болталка 22 01.08.2009 12:15
вопрос по акам вконтакте! moSS Социальные сети 12 25.06.2009 13:34
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ