[AutoIT] Winhttp Darkorbit login (Brauche hilfe)

04/17/2018 15:18 loop88#1
Alte Frage:

Die lösung für alle die das mal brauchen:

PHP Code:
#include "Winhttp.au3"

$sPost "username=testacc221&password=123456789"

$hOpen _WinHttpOpen("Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0")
$hConnect _WinHttpConnect($hOpen"www.darkorbit.com")
$sHtml _WinHttpSimpleRequest($hConnect"GET""")
FileDelete("1.html")
FileWrite("1.html"$sHtml)
$aURL StringRegExp($sHtml,"<form name=""bgcdw_login_form"" method=""post"" class=""bgcdw_login_form"" action=""(\S+)"""3)
$sURL StringReplace(StringRight($aURL[0], StringLen($aURL[0]) -25), "&","&")
MsgBox(0,""$sURL)
$hConnect _WinHttpConnect($hOpen"sas.bpsecure.com"$INTERNET_DEFAULT_HTTPS_PORT)
$hOpenRequest _WinHttpOpenRequest($hConnect"POST"$sURL, Default, "https://www.darkorbit.com", Default, $WINHTTP_FLAG_SECURE)
_WinHttpSetOption($hOpenRequest$WINHTTP_OPTION_SECURITY_FLAGS,  BitOR($WINHTTP_FLAG_SECURE$WINHTTP_FLAG_ESCAPE_DISABLE))
_WinHttpSendRequest($hOpenRequest"Content-Type: application/x-www-form-urlencoded"$sPost)
_WinHttpReceiveResponse($hOpenRequest)
If 
_WinHttpQueryDataAvailable($hOpenRequestThen
    local $sResult
$sData
    
While 1
        $sResult 
_WinHttpReadData($hOpenRequest)
        If @
error Then ExitLoop
        $sData 
&= $sResult
    WEnd
    FileDelete
("2.html")
    
FileWrite("2.html"$sData)
    
ConsoleWrite("Heders ==> " & @CRLF _WinHttpQueryHeaders($hOpenRequest) & @CRLF)
Else
    
MsgBox(48"Error""Fallo de inicio de sesion")
EndIf 
04/25/2018 07:48 mhaendler#2
Ein paar Dinge die mir jetzt auffallen, allerdings alles ungetestet:

Wie sieht denn dein POST-String aus wenn du Ihn zusammengebaut hast?

Ich glaube das dir ein "token=" & $sToken fehlt?

$sToken ist eigentlich ein String oder? Du greift auf den String allerdings wie ein Array zu, da müsstest du dann den ersten Buchstaben lediglich bekommen oder?

Desweiteren packst du den Token auch mit in den POST-Request obwohl dieser als GET-Parameter übermittelt wird.

Versuch mal folgendes:

PHP Code:
$sPostData "username=" $sUserName "&password=" $sPassword ;postData ohne Token

$hRequest 
=  _WinHttpOpenRequest($hConnect"POST""https://sas.bpsecure.com/Sas/Authentication/Bigpoint?authUser=22&token=" $sToken, Default, Default, $WINHTTP_FLAG_SECURE) ;Url mit angehängtem Token 
Ungetestet, da ich gerade in der Arbeit bin
_
mhaendler
04/25/2018 22:34 loop88#3
Hallo, Danke für deine antwort

Quote:
Originally Posted by mhaendler View Post
Ein paar Dinge die mir jetzt auffallen, allerdings alles ungetestet:

Wie sieht denn dein POST-String aus wenn du Ihn zusammengebaut hast?
_
mhaendler
Der POST-String sollte wie folgt aussehen:

PHP Code:
https://sas.bpsecure.com/Sas/Authentication/Bigpoint?authUser=22&token=5tf55*********EDfg&username=*******&password=********* 
Quote:
Originally Posted by mhaendler View Post
Ich glaube das dir ein "token=" & $sToken fehlt?

$sToken ist eigentlich ein String oder? Du greift auf den String allerdings wie ein Array zu, da müsstest du dann den ersten Buchstaben lediglich bekommen oder?
_
mhaendler
"$sToken" ist nur ein eindimensionales array mit den gesuchten string "lediglich prefix fehler" _StringBetween gibt array zurück

Quote:
Originally Posted by mhaendler View Post
Desweiteren packst du den Token auch mit in den POST-Request obwohl dieser als GET-Parameter übermittelt wird.

Versuch mal folgendes:

PHP Code:
$sPostData "username=" $sUserName "&password=" $sPassword ;postData ohne Token

$hRequest 
=  _WinHttpOpenRequest($hConnect"POST""https://sas.bpsecure.com/Sas/Authentication/Bigpoint?authUser=22&token=" $sToken, Default, Default, $WINHTTP_FLAG_SECURE) ;Url mit angehängtem Token 
Ungetestet, da ich gerade in der Arbeit bin
_
mhaendler
so habe ich mal jetzt gemacht und endet jetzt wieder auf der hauptseite :(

PHP Code:
$sPostData "&username=" $sUserName "&password=" $sPassword


$hRequest 
=  _WinHttpOpenRequest($hConnect"POST""https://sas.bpsecure.com/Sas/Authentication/Bigpoint?authUser=22&token=" $aToken[0], Default, Default, $WINHTTP_FLAG_SECURE)

Add header fields to the request
************************
************************

Send it
_WinHttpSendRequest
($hRequest, -1$sPostData