Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Page-redirect "aspxpatherror" - warum? (https://www.delphipraxis.net/171997-page-redirect-aspxpatherror-warum.html)

Lyan 6. Dez 2012 13:23

Delphi-Version: 2010

Page-redirect "aspxpatherror" - warum?
 
Hallo,

versuche derzeit den "MD5decrypter" von http://md5decrypter.co.uk/ in mein Programm zu implementieren.

Der POST der Webseite sieht folgendermaßen aus:

ctl00$ScriptManager1=ctl00$MainContent$updDecrypt| ctl00$MainContent$btnDecrypt&__EVENTTARGET=ctl00$M ainContent$btnDecrypt&__EVENTARGUMENT=&__VIEWSTATE =/wEPDwULLTEzMDIyNTg4MzUPFgIeC1Nob3dDYXB0Y2hhZxYCZg9 kFgICAw9kFgICAQ9kFgICAQ9kFgJmD2QWCAIBD2QWAgIBDw8WA h4EVGV4dAUWNTEyIHJlcXVlc3RzIHJlbWFpbmluZ2RkAgMPD2Q WBB4Lb25Nb3VzZU92ZXIFDkhpZGVUaXAodGhpcyk7Hgpvbk1vd XNlT3V0BRFTaG93VGlwTUQ1KHRoaXMpO2QCBw8PZBYCHgdvbkN saWNrBRBEZWNyeXB0SGFzaGVzKCk7ZAIJDw8WAh4ISW1hZ2VVc mwFIi9jb250cm9scy9jYXB0Y2hhLmFzcHg/ZD0wLjM3NDU1NTlkZGTDlqq2Hzj8XsqzUldMp7gD6F3x+OVyew y0dXM5T8zGew==&__EVENTVALIDATION=/wEWBQKhpc7QCgK2ndTzDAKbs+kmArXQzPMEAtShw5sCXfr0cbu QS6V+Fdfv8btwpuavll3WR97jL++CU39RlyU=&ctl00$MainContent$txtHashes=List your MD5 hashes in here! (Max: 16)
e.g.
68eacb97d86f0c4621fa2b0e17cabd8c
250cf8b51c773f3f8dc8b4be867a9a02
a55b3e109faee46b85b4049ced4a2221
X03MO1qnZdYdgyfeuILPmQ==&ctl00$MainContent$txtCapt cha=Captchablabla&__ASYNCPOST=true&
EVENTVALIDATION und VIEWSTATE stehen im Quelltext.


Meine herangehensweise:

idhttp den Cookiemanager zugewiesen.
idhttp HandleRedirects -> true.
Useragent ect. gesetzt.

Dann mal zum testen ineffizient die nötigen Infos extrahiert

Delphi-Quellcode:
    MS := TMemoryStream.Create;
    GIF := TGIFImage.Create;
    sCaptcha := idhttp.Get('http://www.md5decrypter.co.uk/');
    delete(scaptcha,1,pos('name="__VIEWSTATE" id="__VIEWSTATE" value="',scaptcha)+42);
    sviewstate := urlencode(copy(scaptcha,0,pos('" />',scaptcha)));
    delete(scaptcha,1,pos('id="__EVENTVALIDATION" value="',scaptcha)+29);
    eval := urlencode(copy(scaptcha,0,pos('" />',scaptcha)));
    delete(sCaptcha,1,pos('<img id="ctl00_MainContent_imgCaptcha" src="',sCaptcha)+43);
    scaptcha := Copy(sCaptcha,0,pos('" alt="Captcha"',sCaptcha));
    IdHTTP.get('http://www.md5decrypter.co.uk' + scaptcha,MS);
    Ms.Seek(0,soFromBeginning);
    GIF.LoadFromStream(MS);
    Image.Picture.Assign(GIF);

Das Captcha wird dann von mir ingegeben und per Buttonklick wird dann folgende Funktion aufgerufen:

Delphi-Quellcode:
function TFormMain.MD5DeCrypt(sHash, scaptcha : String) : String;
var
  slList : TStringList;
  MS : TMemoryStream;
begin
  slList := TStringList.Create;
  //MS := TMemoryStream.Create;
  try
    try
      slList.Add('ctl00%24ScriptManager1=ctl00%24MainContent%24updDecrypt%7Cctl00%24MainContent%24btnDecrypt');
      sllist.Add('__EVENTTARGET=ctl00%24MainContent%24btnDecrypt');
      sllist.Add('__EVENTARGUMENT=');
      sllist.Add('__VIEWSTATE=' + sviewstate);
      sllist.Add('__EVENTVALIDATION=' +  eVal);
      sllist.Add('ctl00%24MainContent%24txtHashes=' + shash);
      sllist.Add('ctl00%24MainContent%24txtCaptcha=' + scaptcha);
      sllist.Add('__ASYNCPOST=true');
      Result := IdHTTP.Post('http://www.md5decrypter.co.uk',slList);
    except
      messagedlg('Host nicht gefunden!', mtError, [mbOK], 0);
    end;
  finally
 //  slList.Free;
 //   MS.Free;
  end;
end;
Das urlencode habe ich nur getestet, weil ich in der Hoffung war, dass es vlt. hätte daran liegen können.

Result ist in diesem Fall:
Delphi-Quellcode:
'1|#||4|47|pageRedirect||%2ferror.aspx%3faspxerrorpath%3d%2fdefault.aspx|'
Mit dem Firefox-AddOn "Live HTTP Headers" kann ich jedoch problemlos den POST senden und erhalte auch das gewünschte Ergebnis. Die gleiche Fehlermeldung erhalte ich in Firefox NUR DANN, wenn ich "EVENTVALIDATION" ungültig mitsende.

"Komischerweise" habe ich mal in C++ in QT ein einfaches TCPSocket genommen und den HTTP-Request selber zusammengebaut. Da bekam ich das gleiche, gewünschte, Ergebnis wie in Firefox.


Hat jemand eine Idee? Habe ich tidhttp irgendwie falsch eingestellt oder so?


Danke im voraus.

mjustin 8. Dez 2012 20:15

AW: Page-redirect "aspxpatherror" - warum?
 
Zitat:

Zitat von Lyan (Beitrag 1194549)

"Komischerweise" habe ich mal in C++ in QT ein einfaches TCPSocket genommen und den HTTP-Request selber zusammengebaut. Da bekam ich das gleiche, gewünschte, Ergebnis wie in Firefox.


Hat jemand eine Idee? Habe ich tidhttp irgendwie falsch eingestellt oder so?

Das kann mit dem HTTP Proxy "Fiddler" leicht ermitteln - einfach darüber einmal den Firefox Request aufzeichnen und dann den per Delphi gesendeten Request.
Diese dann nur noch genau vergleichen, um den Unterschied zu finden. Es könnte an der Indy-Version, Unicode, Kodierung der Requestparameter u.v.m liegen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz