Guten Abend, ich würde gern einen regelmäßigen Zugriff auf mein Commerzbank-Konto haben, mit HTTPMOD. Ich habe mir Unterlagen zum API der Commerzbank besorgt, komme da aber nicht weiter - ich weiß einfach nicht, wie die nächsten Schritten aussehen. Vielleicht kann mir jemand hier helfen.
Zuerst gehe ich auf
https://commerzbank.de/banking/landingpage?0 (https://commerzbank.de/banking/landingpage?0)
und erhalte dann eine jsession-Id, zum Beispiel
https://kunden.commerzbank.de/lp/login?cifSecParams=EPSLZ7dhkdZ3VSNJcsDVAd6MzDAzvFm-nZftryzS7E4 (https://kunden.commerzbank.de/lp/login?cifSecParams=EPSLZ7dhkdZ3VSNJcsDVAd6MzDAzvFm-nZftryzS7E4)
Danach werden Benutzerkennung und Passwort eingegeben. Die API sagt nun
Base path:https://api-sandbox.commerzbank.com
GET /accounts-api/v1-s/accounts/{accountId}/balances Get balances by account ID
Implementation Notes
Returns the balances of a given account.
Response Class
ModelModel Schema
balances {
closingBooked (balanceType, optional)
}
balanceType {
amount (amount)
date (string, optional): Current booking date.
lastActionDateTime (string, optional): Timestamp of last update on this balance.
}
amount {
currency (string): ISO 4217 code.
amount (number, optional): The amount given with fractional digits, where fractions must be compliant to the currency definition. The decimal separator is a dot.
}
Response Content Type
Parameters
Parameter Description Parameter Type Data Type
accountId Account ID, encrypted path string
Also das mit dem API habe ich aufgegeben, zumal man anscheinend erstmal programmieren muss und dann den Zugang beantragen soll. Mit burp habe ich etwas herausbekommen.
Man startet die Anfrage wohl so
GET /lp/login/ HTTP/1.1
Host: kunden.commerzbank.de
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Cookie: cif-language=de_DE; qSession=a82....
User-Agent:
Accept-Language: de-de
Connection: close
wobei ich mir sicher bin, dass qSession vorher übergeben wurde. Dann bekommt man
HTTP/1.1 200 OK
Date: Sun, GMT
Server: Apache
Cache-Control: no-cache, no-store
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Pragma: no-cache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Type: text/html; charset=UTF-8
Content-Language: de-DE
Vary: Accept-Encoding
Set-Cookie: JSESSIONID=00000W5w....; Path=/; Secure; HttpOnly
Set-Cookie: FESAX=14634....; path=/; Httponly; Secure
Connection: close
Content-Length: 280243
.....
<input type="hidden" name="pToken" value="158f1fa1-XXXX-XXXXX usw" />
......
und das pToken ist wichtig, weil damit die Teilnehmerdaten gesandt werden,
POST /lp/login/?-1.IFormSubmitListener-loginForm HTTP/1.1
Host: kunden.commerzbank.de
Content-Type: application/x-www-form-urlencoded
Origin: https://kunden.commerzbank.de
Cookie: FESAX=14634....; JSESSIONID=00000W5w....; cif-language=de_DE; qSession=a82...
Connection: close
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent:
Referer: https://kunden.commerzbank.de/lp/login/
Content-Length: 115
Accept-Language: de-de
pToken=158f1fa1-XXXX-XXXXX&id1_hf_0=&userid=XXXXXXXX&pin=XXXXXX&startSite=%2Fbanking%2Flandingpage
Danach sollte man drin sein.
Jetzt müsste man das mal in HTTPMOD ausprobieren. Mein Problem ist, dass zwischen den hier notierten Aufrufen bis zu zehn (!) weiteren GETs liegen, die anscheinend die Seite schöner machen. Ich weiß aber nicht, ob sie eingefügt werden müssen. Und muss ich die cookies explizit setzen?