500 Internal server error delphi

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by realcoder, 25 Jun 2011.

  1. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    в общем пишу сменщик паролей icq: получаю страницу авторизации, парсю karmasynckey, отправляю post запроос и получаю raised exception 500 internal server error. к сожалению https запросы можно проследить только из internet explorer, а в программе все делается в слепую и нет возможности перхватить запрос из программы. вот код:
    Code:
    var
      Form1: TForm1;
      key:string;
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var s:string;
    c:string;
    i:integer;
    begin
    idhttp1.ReadTimeout:=99999;
    s:=idhttp1.Get('https://www.icq.com/login/ru?dest=%252Fchange-password%252Fru');
    memo1.Text:=s;
    delete(s,1,pos('<input type="hidden" name="karmaSyncKey" value="',s)+length('<input type="hidden" name="karmaSyncKey" value="')-1);
    s:=copy(s,1,pos('"',s)-1);
    edit1.Text:=s;
    key:=s;
    for i := 0 to idcookiemanager1.CookieCollection.Count - 1 do
      c:=c+idcookiemanager1.CookieCollection.Items[i].CookieText;
      showmessage(c);
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    var p:tstringlist;
    begin
    memo1.Lines.Clear;
    p:=tstringlist.Create;
    p.Add('karmaSyncKey='+key);
    p.Add('dest=%252Fchange-password%252Fru');
    p.Add('emailuin=620157997');
    p.Add('password=btf7xkjb');
    p.Add('karmaSyncKey='+key);
    p.Add('dest=%252Fchange-password%252Fru');
    p.Add('emailuin=620157997');
    p.Add('password=btf7xkjb');
    p.Add('remember_me=');
    memo1.text:=idhttp1.Post('https://www.icq.com/login/ru?dest=%252Fchange-password%252Fru',p);
    end;
    
    может кто подскажет что не так? из браузера все нормально работает
     
  2. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    а в чем проблема перехата заголовков из твоей программы?
    Юзаю HTTP Analyzer Full V.5 ни разу проблем перехвата любоо браузера или моей программ не возникало
     
  3. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    1. Не дублируйте параметры запроса, это снифер глючит (не надо два раза добавлять 'karmaSyncKey, номер и пароль)

    2. Добавьте заловки запроса (юзерагент, реферер и т.д.),
     
  4. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    он вообще не перехватывает http запросы через ssl, из программ кроме IE
     
  5. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    2ZdezBilYa :
    все передаваемые браузером заголовки выставил в request, параметры теперь передаю только по одному разу - по прежнему вылазит exception. если надо вот сорц http://zalil.ru/31333309
     
  6. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    ну... если потанцевать с бубном, то очень даже перехватывает
     
  7. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    а поконкретнее можно?
     
  8. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    в общем делал так:
    запускаешь Analyzer
    запускаешь циклические запросы в своей проге
    запускаешь Analyzer кнопочкой старт.
    работает не всегда, но если потанцевать, то увидеть результат можно
     
  9. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    IdCookieManager1 - не нужно

    у IdHTTP1 почему-то в Request.UserAgent стоит

    Code:
    image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    Разве это похоже на Юзер-Агент?

    Поставьте это:

    Code:
    Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10
    Убираем у обоих запросов в конце: "?dest=%252Fchange-password%252Fru" (должно остаться только "https://www.icq.com/login/ru")

    У параметра "dest" тоже убираем значение
    Добавляем параметр:
    Code:
    p.Add('remember_me=');
    Profit!
     
    #9 ZdezBilYa, 25 Jun 2011
    Last edited: 25 Jun 2011
    1 person likes this.