WinHttpRequest Login mit Token

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Folllast
Posts: 87
Joined: 24 Jan 2018, 04:57

WinHttpRequest Login mit Token

Post by Folllast » 17 Jun 2020, 04:30

Hallo,
ich wollte mir mit dieser Anleitung ein Tool bauen, was sich selbstständig auf einer Website einloggt. So sieht der Code jetzt aktuell aus:

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.


;Prepare our WinHttpRequest object
HttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
;HttpObj.SetProxy(2,"localhost:8888") ;Send data through Fiddler
HttpObj.SetTimeouts(6000,6000,6000,6000) ;Set timeouts to 6 seconds
;HttpObj.Option(6) := False ;disable location-header rediects

;Set our URLs
loginURL := "http://www.airlines-manager.com/login_check"
loginSiteURL := "http://www.airlines-manager.com/locale/de"

;Set our login data
username := ""
password := ""
rememberMe := "1"


;Step 1
HttpObj.Open("GET",loginSiteURL)
HttpObj.Send()

;Step 2
RegExMatch(HttpObj.ResponseText,"<input\stype=""hidden""\sname=""_csrf_token""\svalue=""([\w\-]+)"">",match)
text := HttpObj.ResponseText
FileAppend, %text%, ausgabe2.html
auth_key := match1

;Step 3
loginBody := "_csrf_token=" auth_key ; "&_username=" username "&_password=" password "&_remember_me=" . rememberMe
FileAppend, %loginBody%`n,LoginBody.txt

;Step 4/5
HttpObj.Open("POST",loginURL)
;HttpObj.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
HttpObj.Send(loginBody)

;Step 6
text := HttpObj.ResponseText
FileAppend, %text%, antwort.html
MsgBox
Ich bekomme leider in der Antwort immer die Fehlermeldung, dass der Token falsch wäre. Allerdings wird er zumindest in der LoginBody.txt noch korrekt angezeigt. Wie kann man jetzt mit der Fehlersuche weitermachen?

kann man im Firefox nachschauen, welche Daten geschickt werden, wenn man auf LOGIN klickt, oder selbst sogar "manipulierte" Daten senden?

User avatar
haichen
Posts: 540
Joined: 09 Feb 2014, 08:24

Re: WinHttpRequest Login mit Token

Post by haichen » 17 Jun 2020, 05:01

Extras > Webentwickler > Netzwerkanalyse
Bei mir geht F12

Folllast
Posts: 87
Joined: 24 Jan 2018, 04:57

Re: WinHttpRequest Login mit Token

Post by Folllast » 19 Jun 2020, 04:38

Hallo,

ich habe es überprüft. Der Browser macht genau das, was ich auch mache. (Denke ich.) Er erkennt auch meine richtigen Login-Daten, meint aber, dass der CRSF-Token der falsche wäre.
Das ist der String, der im Firefox bei "Anfrage-Inhalt steht:

Code: Select all

_remember_me=on&_username=meinnname&_password=meinpasswort&_csrf_token=HjZDG9lY4HejPC1vMGDclK4hF53NuSdzjc-XsZGfbDk
und der Code ist bei mir der "Login-Body":

Code: Select all

_remember_me=on&_username=meinname&_password=meinpasswort&_csrf_token=UxQnQ4Ha-QqGxXcrwtxPaa8ofGvAGfZaIXGzsyk6OzI
der csrf-token ist unterschiedlich, da er bei jeder DAtei neu generiert wird. Wie auch immer und warum auch immer das gemacht wird.

BoBo
Posts: 3765
Joined: 13 May 2014, 17:15

Re: WinHttpRequest Login mit Token

Post by BoBo » 19 Jun 2020, 05:16

Vll lässt sich die Vorgehensweise hier auf deinen Fall übertragen ...
https://get.todoist.help/hc/en-us/articles/208951085-CSRF-token-error-messages

Post Reply

Return to “Ich brauche Hilfe”