my.webmoney.ru - Проблемы с авторизацией

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by -=mazaxaka=-, 11 Sep 2011.

  1. -=mazaxaka=-

    -=mazaxaka=- New Member

    Joined:
    7 Jun 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Пробую логинится на сайт вебмани в итоге получаю ошибку:
    HTTP/1.1 302 Found
    Редирект подключен, переменные парсит правильно SSL тоже подключен, непонятно в чем причина :-(

    Код логина:
    PHP:
       TStringList*post = new TStringList();
            
    post->Add("&__LASTFOCUS=");//+LF);
            
    post->Add("&__EVENTTARGET=");//+ET);
            
    post->Add("&__EVENTARGUMENT=");//+EA);
            
    post->Add("&__LBD_VCT="+LV);
            
    post->Add("&__LBD_SGC_login_ctl00_cph_captcha_captcha=0");//+LC);
            
    post->Add("&__VIEWSTATE="+VS);
            
    post->Add("&__EVENTVALIDATION="+EV);
            
    post->Add("&search=Найти информацию");
            
    post->Add("&ctl00$cph$ddlAuthMethod=Логина и пароля");
            
    post->Add("&ctl00$cph$tbLogin="+Edit1->Text);
            
    post->Add("&ctl00$cph$tbPassword="+Edit2->Text);
            
    post->Add("&ctl00$cph$Captcha$tbCaptcha="+CapKEY);
            
    post->Add("&ctl00$cph$btnSubmit=Войти");


            try{
                
    result http->Post("https://my.webmoney.ru/login.aspx?ReturnUrl=/dashboard.aspx"post);
                
    Memo1->Lines->Add(result+"/n/n/n/n");
        
    Memo1->Lines->AddStrings(post);
            }
            catch(...){
            
    Memo1->Lines->Add(http->ResponseText);

            
    //http->ResponseText;
            
    }
     
  2. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    302 - это не ошибка, это просто код ответа
    тебе из ответа
    нужно вытащить Location и сделать запрос по этому адресу.
    А если ты юзаешь Indy, то
    Code:
    HTTP.HandleRedirects:=True;
    спасет тебя, и ручками делать ничего не прийдется
     
  3. -=mazaxaka=-

    -=mazaxaka=- New Member

    Joined:
    7 Jun 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    так я так и делаю
    PHP:
     TMemoryStream*cap = new TMemoryStream();
     
    TIdHTTP*http = new TIdHTTP(NULL);
     
    TIdSSLIOHandlerSocketOpenSSL*ssl = new TIdSSLIOHandlerSocketOpenSSL(NULL);
      
    http->HandleRedirects true;
      
    http->AllowCookies=true;
        
    http->IOHandler ssl;
        
    http->Request->UserAgent="Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2";
        
    http->Request->Referer="https://my.webmoney.ru/login.aspx";
    но все равно вылазит HTTP/1.1 302 Found
     
  4. -=mazaxaka=-

    -=mazaxaka=- New Member

    Joined:
    7 Jun 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Проблема точно с редиректом но
    http->HandleRedirects = true; - врублен

    скрин запроса снифером
    [​IMG]
     
  5. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Хе, а знаки вопроса вместо полей в запросе ты считаешь нормальными?
    Или
    а) вместо MultiPartFormDataStream используй StringList
    б) вместо строк-значений в MultiPartFormDataStream используй TStringStream
    P.S. а 302 у тебя вылазит в IDE ведь? Скомпиль проект и запусти Exe-шник, по идее Exception через try..catch не вылезет
    P.P.S. а чтобы вместо капчи получать не левые знаки, а русские (как я понимаю) буквы, нужно код переделать в Recognize антигейта
    примерно так (Delphi т.к. в С не силен)
    Code:
    S:tstringStream;
    res:string;
    HTTP.Get(url,s);
    res:=s.DataString;
     
    #5 xophet, 11 Sep 2011
    Last edited: 11 Sep 2011
  6. -=mazaxaka=-

    -=mazaxaka=- New Member

    Joined:
    7 Jun 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    если стринг лист то запрос выгладит так:
    [​IMG]

    Хотя в нем указаны все параметры:


    как раз капча проходит она числовая
     
    #6 -=mazaxaka=-, 11 Sep 2011
    Last edited: 11 Sep 2011
  7. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Ну я в запросе вижу "???" вместо капчи, из этого делаю вывод что что-то не так
     
  8. -=mazaxaka=-

    -=mazaxaka=- New Member

    Joined:
    7 Jun 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    10-й. Писал на 7-м то отказывался работать с ssl

    то не капча а строки
    post->Add("&search=Найти информацию");
    post->Add("&ctl00$cph$ddlAuthMethod=Логина и пароля");

    с русскими символами.
    это не проблема. непонятно чего посылает кривой пост запрос..
    Писал брут ICQ на этом же инди тоже отправлялся запрос на авторизацию с ssl отправляло норм
     
    #8 -=mazaxaka=-, 11 Sep 2011
    Last edited: 11 Sep 2011
  9. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    а, чьерт не обратил внимания, что SSL соедниение.
    Тогда то, что в снифере неверно показываются поля это нормально... на то оно и шифрованное соединение!
    P.S. Честно - не знаю, но мне кажется дело как раз в этих вопросах...
     
    #9 xophet, 11 Sep 2011
    Last edited: 11 Sep 2011