Авторизация на сайте Skype.com

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Sin3v, 9 Jul 2010.

  1. Sin3v

    Sin3v Banned

    Joined:
    16 Jul 2008
    Messages:
    11
    Likes Received:
    95
    Reputations:
    9
    Delphi | Сталкивался кто-нибудь?
    В общем там 4 поля в посте отсылаются
    username
    password
    timezone_field
    blackbox
    Первые три нетрудно отправить, а вот 4 там генерируется код в JS, в общем помогите авторизоваться.
     
  2. Sin3v

    Sin3v Banned

    Joined:
    16 Jul 2008
    Messages:
    11
    Likes Received:
    95
    Reputations:
    9
    Не буду парится, заюзал я WebBrower + написал кластер код для считывания исходника страницы
     
  3. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Зря. Если в експлорере будет выключен JS (что характерно для множества дедиков), то у клиента софт не будет работать.

    Сейчас посмотрю, что там на сайте. Кстати, ты не пробовал посылать пустой blackbox?
     
    1 person likes this.
  4. NemeZz

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    фунция генерации. В целом и общем - ставится значение _i_ed. Как его выдрать - пока хз.
    updateBlackboxes:function()
    {
    var _i_dk="";
    if(this._i_ee)
    {_i_dk=this.__i_ee();}
    if(io_adp._i_ee&&io_adp._i_ed.length>0)
    {if(_i_dk.length>0)
    {_i_dk+=";";}
    _i_dk+=io_adp._i_ed;}
    _i_e=_i_dk;
    _i_dl=_i_y.getElementById(window.io_bbout_element_id);
    if(_i_dl&&_i_dl.value!==undefined){_i_dl.value=_i_e;}
    }
     
  5. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Интересная система у них, короче нужно скачать скрипт https://mpsnare.iesnare.com/snare.js

    Его разложить по полочкам. По сниферу видно что стоит запрет его кешировать, он генерируется относительно идента браузера и возможно относительно IP, короче его нужно каздый раз скачивать и парсить, а что парсить именно - надо смотреть после расшифровки, думаю здесь работы часа на 3, не больше.
     
  6. Sin3v

    Sin3v Banned

    Joined:
    16 Jul 2008
    Messages:
    11
    Likes Received:
    95
    Reputations:
    9
    Мне под чекер в прогу SinMobile 2.5, да плохо если у кого то не будет IE стоять, то без чекера останутся.
     
  7. Sin3v

    Sin3v Banned

    Joined:
    16 Jul 2008
    Messages:
    11
    Likes Received:
    95
    Reputations:
    9
    Чо ваше никак?
     
  8. Sin3v_2

    Sin3v_2 Banned

    Joined:
    22 Aug 2010
    Messages:
    3
    Likes Received:
    4
    Reputations:
    0
    Вообщем там главные поля:
    username
    password
    остальные для красоты)
    А вот почему авторизация через Delph не происходит не пойму

    Вот так происходит если через страницу:
    Та наверно проверяется user-agent и т.д. надо на winsock попробывать)
     
    #8 Sin3v_2, 13 Oct 2010
    Last edited: 13 Oct 2010
  9. Sin3v_2

    Sin3v_2 Banned

    Joined:
    22 Aug 2010
    Messages:
    3
    Likes Received:
    4
    Reputations:
    0
    Короче пишу
    Не авторизуется ипишет ошибку "You have cookies disabled in your browser. You need to enable cookies for skype.com before signing in."
    Типо куки не включены, куки менеджер кидаю, таже ошибка
     
    #9 Sin3v_2, 14 Oct 2010
    Last edited: 14 Oct 2010
  10. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Смотри в сниффере какие кукисы не передаются, но должны
    Если что фиксить CookieManager или самому парсить
     
  11. Sin3v_2

    Sin3v_2 Banned

    Joined:
    22 Aug 2010
    Messages:
    3
    Likes Received:
    4
    Reputations:
    0
    ДАДа не все куки приходят по сравнению когда через мозилу авторизуешься вот то что снифер показывает:
    Запрос:
    Ответ:
    в проге ответ такой
    я хз че делать((
     
  12. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Ну вот видно что мозилла уже в пост запросе передает куки. Они видимо записываются еще на главной или странице логина? А ты сразу пост шлешь? Может сначала страницу логина посетить надо, чтобы эти куки записались? И еще про реферер не забывай, некоторые сайты требуют этого.

    PS Если дело окажется не в этом то парси "вручную" куки из заголовков

    PS2 Я бы посмотрел сам, но тупо акка нет, а регаться влом :(
     
  13. Pyhin

    Pyhin Member

    Joined:
    25 Oct 2008
    Messages:
    1
    Likes Received:
    32
    Reputations:
    0
    Парси куки из ответа сервера и подставляй их в ручную, у меня была такая же проблема:

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
     Http: TIdHTTP;
     cook: TIdCookieManager;
     Data: TStringList;
     html_cod, cookie1, cookie2, header: String;
     IDHandler: TIdSSLIOHandlerSocketOpenSSl;
    begin
      try
         Http := TIdHTTP.Create(self);
         cook := TIDCookieManager.Create(Http);
         IdHandler := TIdSSLIOHandlerSocketOpenSSl.create(nil);
         IDHandler.SSLOptions.Method := sslvSSLv23;
         Http.IOHandler := IDHandler;
         data := TStringList.Create;
         Http.CookieManager := cook;
         Http.AllowCookies := true;
         Http.HandleRedirects := false;
         Http.Request.Host := 'auth.mail.ru';
         Http.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6';
         Http.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
         Http.Request.AcceptLanguage := 'ru,en-us;q=0.7,en;q=0.3';
         Http.Request.AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.7';
         Http.Request.Referer := 'http://win.mail.ru/cgi-bin/login';
         Http.Request.Connection := 'keep-alive';
         Http.Request.ContentType := 'application/x-www-form-urlencoded';
         Data.Add('page=');
         Data.Add('post=');
         Data.Add('login_from=');
         Data.Add('Login='+Edit1.Text);
         Data.add('Domain='+'mail.ru');
         Data.add('Password='+Edit2.Text);
         try
         html_cod := http.post('https://auth.mail.ru/cgi-bin/auth', data);
         except
         end;
         Memo1.text := http.Response.RawHeaders.Text;
    
         Delete(header, 1, pos('Set-Cookie: ', header)+11);
         cookie1 := copy(header, 1, pos('Set-Cookie: ', header) -2);
         Delete(header, 1, pos('Set-Cookie: ', header)+11);
         cookie2:= header;
         http.Request.CustomHeaders.Text:='Cookie: '+cookie1 +#10#13+cookie2; 
         html_cod := http.get('http://mail.ru/');
      finally
         Data.free;
         http.Free;
         //cook.Free;
      end;
      if pos('checkcookie', html_cod)> 0 then Edit3.Text := 'Авторизация прошла успешно!'
      else Edit3.Text := 'Авторизация не удалась!';
    
    end;
    
     
    #13 Pyhin, 15 Oct 2010
    Last edited: 15 Oct 2010
  14. Spy2ex

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

    Joined:
    20 Sep 2008
    Messages:
    32
    Likes Received:
    15
    Reputations:
    1
    Такс...
    запрос cl->ser
    Code:
    HEAD /intl/ru/account/login-form HTTP/1.1
    Host: login.skype.com
    Content-Length: 0
    
    Так мы делаем запрос на полчн. куки
    овтет ser->cl

    Code:
    HTTP/1.1 200 OK
    Date: Fri, 15 Oct 2010 18:25:51 GMT
    Server: Apache
    Set-Cookie: skype-login=jmsnk0vh7qmaoit379ujqsqna7; path=/; domain=.skype.com; secure; HttpOnly
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: SC=CC=:CCY=:LC=ru:LIM=:TM=1287167151:TS=1287167151:TZ=:VAT=:VER=; expires=Sat, 15-Oct-2011 18:25:51 GMT; path=/; domain=.skype.com
    Vary: User-Agent,Accept-Encoding
    Content-Type: text/html
    
    Куку получили, обрабатывай вручную или оставь это дело компонентам.

    cl->ser (пост даныне)

    Code:
    POST /intl/ru/account/login-form HTTP/1.1
    Host: login.skype.com
    Cookie: SC=CC=:CCY=EUR:LC=ru:LIM=:TM=1287167070:TS=1286900630:TZ=:VAT=:VER=0/4.2.0.187/259; skype_s_vi=265C4190851D3DBB-4000012BC001D652
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 36
    
    username=LOGIN&password=PASS
    
    ser->cl

    Code:
    HTTP/1.1 302 Found
    Date: Fri, 15 Oct 2010 18:27:48 GMT
    Server: Apache
    Set-Cookie: skype-login=f9k4ga7850n2r8idamu1mkm381; path=/; domain=.skype.com; secure; HttpOnly
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: skype-login=nldhep1j0dcjo8klcmjkp55cc4; path=/; domain=.skype.com; secure; HttpOnly
    Set-Cookie: SC=CC=:CCY=EUR:LC=ru:LIM=:TM=1287167268:TS=1286900630:TZ=:VAT=:VER=0/4.2.0.187/259; expires=Sat, 15-Oct-2011 18:27:49 GMT; path=/; domain=.skype.com
    Location: https://login.skype.com/intl/ru/account/login-exit
    Vary: User-Agent,Accept-Encoding
    Content-Length: 0
    Content-Type: text/html
    
    Редирект 302, обрабатывай корректно подставляя кукисы, после 4 редиректа(можно попробовать с уже имеющмс. кукисами обратиться на страницу пользователя, напрямую минуя все редиректы , но не факт что получится, нету время попробовать, но ты попробуй, меньше запросов - лучше), после всех манипуляций с редиректами получишь долгожданную страницу (200 0К).

    p.s Если что icq 66-75-75, пиши помогу.