FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Vize am 05 März 2017, 11:49:32

Titel: [gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 05 März 2017, 11:49:32
Hallo zusammen,

vor ein paar Tagen hat der Betreiber des online-Monitorings meiner PV-Anlage mit Batteriespeicher die Seite im größeren Stile geändert.
Auch das login-Prozedere wurde dabei umgestellt (JSON -> HTML oder so).
Seit dem funktioniert das Abholen der aktuellen Monitoring-Werte per HTTPMOD nicht mehr.

Zuvor klappte es mit einem HTTPMOD-Device mit folgenden Atrributen (für den login):

sid1Data, sid1Header1, sid1Header2, sid1URL, reAuthRegex, extractAllJSON

In sid1Data steckten die Angaben für user und Passwort, in sid1URL stand der link zur Login-seite.
Per reAuthRegex wurde dann der login durchgeführt, und mit extractAllJSON wurden dann die entsprechenden Readings angelegt und kontinuierlich aktualisiert.

Folgendes habe ich bereits über die Entwickler-Werkzeuge im Firefox herausgefunden (mit burp kann ich die Seite aus irgendwelchen Gründen nicht aufrufen):

"Hauptlink": https://mein-senec.de


Die gewünschten Daten stecken nun hier: https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0

Der "login-Durchlauf" sieht so aus:
Nach Eingabe der login-Daten wird diese Unterseite aufgerufen: https://mein-senec.de/endkunde/auth/authenticate
Dort erscheinen dann unter Parameter die login-Daten als Formulardaten in dieser Form: username=email@email.de&passwort=geheim bzw. wie im beigefügten screenshot
Dann werden diverse scripte und andere Unterseiten verarbeitet, und man gelangt auf die Seite mit den aktuellen Monitoring-Daten, s.o..

Ich habe die einzelnen Seiten, die mir dabei aufgefallen sind, mit den jeweiligen Daten der Kopfzeilen, Cookies, Parameter und Antworten aus den Firefox-Entwicklerwerkzeugen mal als zip-Datei beigefügt, da es sehr viele screenshots geworden sind.

Dabei folgende Nummerierung der Seiten in den screenshots:
Nr.   Unterseite
1   authenticate
2   /endkunde/
3   getEndkunde
4   getAnlage?anlageNummer=0
5   getstatusoverview.php?anlageNummer=0

Ich habe zur Zeit leider keinen Plan, wie ich nun ein entsprechendes HTTPMOD-Device aufbauen muss, um wieder an die Daten zu kommen, bzw. ich weiß nicht, ob es überhaupt noch per HTTPMOD funktioniert.
Ein einfaches Austauschen der login-Daten und URLs im "alten" HTTPMOD-Device bringt keinen Erfolg.

So, ich hoffe, ich habe jetzt nicht zuviel Verwirrung gestiftet, und vielleicht kann ja jemand helfen oder mir ein paar Tipps dazu geben.

Vielen Dank schonmal!

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 07 März 2017, 10:40:04
Moin,

dies habe ich noch zusätzlich herausgefunden:

Beim ersten Aufruf der homepage erhält man beim login von der Unterseite "https://mein-senec.de/auth/authenticate" folgendes als Antworttext in den Entwicklertools des browsers:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="shortcut icon" type="image/vnd.microsoft.icon"
          href="/VAADIN/themes/meinsenec/favicon.ico"/>
    <link rel="icon" type="image/vnd.microsoft.icon" href="/VAADIN/themes/meinsenec/favicon.ico"/>
    <link rel="stylesheet" href="/VAADIN/themes/meinsenec/styles.css" type="text/css">
    <base href="">

    <title>Login Portal</title>
</head>
<body>

<script type="text/javascript">

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", "/endkunde/auth/authenticate");

    var usernameField = document.createElement("input");
    usernameField.setAttribute("type", "hidden");
    usernameField.setAttribute("name", "username");
    usernameField.setAttribute("value", "user@email.de");

    form.appendChild(usernameField);

    var passwortField = document.createElement("input");
    passwortField.setAttribute("type", "hidden");
    passwortField.setAttribute("name", "passwort");
    passwortField.setAttribute("value", "geheim");

    form.appendChild(passwortField);

    document.body.appendChild(form);
    form.submit();

</script>

<div class="loginform-wrapper">

    <div class="title-area">
        <div class="logo"></div>
    </div>

    <div id="loginContainer" class="login-form-area">
        TEST
    </div>

    <div class="title-row">Login Portal</div>
    <div class="status-text">
        <span>Version 2.0.0-SNAPSHOT-
            201703061646</span>
    </div>
</div>
</body>
</html>


mit username und passwort.

Vielleicht weiß jemand damit was anzufangen...ich komme leider mit dem login-Prozedere per HTTPMOD noch nicht weiter...

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: ch.eick am 07 März 2017, 14:10:09
Hallo.
helfen kann ich leider nicht, jedoch habe ich ein ähnliches Problem. Ich möchte mich auf der https://cloud.vallox.com Seite anmelden und scheitere bei der Übergabe von username und passwort. Laut trace im Browser soll es als username=user@email.de&passwort=yyyy übergeben werden.
Kannst Du mir Deine bisherige Konfiguration mal als Beispiel geben?

sid1Data username=user@email.de&passwort=yyyy
sid1Header1 ???
sid1Header2 ???
sid1URL https://cloud.vallox.com/
reAuthRegex
extractAllJSON <== vallox stellt die Daten auch als json liste dar, was ich über einen curl Aufruf (mit offener session) bereits lesen kann

In der Hoffnung, dass Dein Beispiel bei mir passen könnte :-)

Gruß
  Christian

P.S. Am Anfang ist ja sooooo viel zu lernen

FHEM 5.8; Rpi 2b; Jessie

Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 07 März 2017, 14:48:43
Hi,

klar, hier mein Versuch, aber klappt wie gesagt nicht...
Komme beim login nicht weiter.
Weiß auch nicht genau, ob die Header-Daten passen...

Die gewünschten Daten liegen dort ebenfalls als json-Liste vor.

Gruß
Andreas

DEF
https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0 60

Attribute
   enableCookies 1
   extractAllJSON 1
   reAuthRegex .*
   sid1Data   username=e@mail.de&passwort=geheim
   sid1Header1 Content-Type: text/html
   sid1Header2 Accept: */*
   sid1URL    https://mein-senec.de/auth/authenticate
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: ch.eick am 07 März 2017, 15:56:57
Hallo Anreas.

viele Dank erst ein mal. Ich hatte es so verstanden, dass eine Verbindung schon mal funktionierte und diese Konfiguration wollte ich dann als Muster für meine Verbindung verwenden.

Bei mir ist es momentan so, dass ich über den Browser ein Login machen kann und anschließend z.B. einen get Request mit curl von der Shell aus machen kann.
Dabei wird die komplette Session Autorisierung von mir kopier und mit keep-alive offen gehalten.

In diesem Zustand kann ich mit get oder post kommunizieren und meine KWL zuhause reagiert auch darauf. Die Daten werden hierbei mit json übertragen und ich kann die modbus Felder mit der Dokumentation entsprechend zuordnen.

Nun versuche ich gerade mit httpmod über das Login hinweg zu kommen. War Dein Beispiel nun das alte, was funktioniert hat oder das neue ohne Funktion?

Viele Grüße
    Christian
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 07 März 2017, 17:04:38
Hi Christian,

das ist schon das neue, nicht funktionierende.

Das alte habe ich damit überschrieben, so dass ich die kompletten Daten von damals wohl nicht mehr zusammen bekomme...sorry.

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: ch.eick am 07 März 2017, 17:09:36
Hi Andreas,

die werden in der fhem.cfg abgelegt und sind dann in Deiner Datensicherung ;-)
Oder in der alten Log Datei, als Du das device eingerichtet hast.

Ansonsten schade, schade, funktionierende Beispiele sind immer Gold wert.

Gruß und Danke
     Christian


Ich bin dann jetzt zu https://forum.fhem.de/index.php/topic,45176.msg600969.html#msg600969 (https://forum.fhem.de/index.php/topic,45176.msg600969.html#msg600969) gewechselt. Da steht alles noch umfangreicher und mit Konfiguration
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 07 März 2017, 18:53:35
Bei mir sieht es jetzt so aus, funktioniert aber noch nicht.

Einiges wird in das login-Formular schon übertragen, aber dann geht's nicht weiter...siehe Anmerkungen im zweiten code.
Im Moment hab ich auch keine Idee mehr...  :-\

Gruß
Andreas

DEF und Attribute
https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0 60

enableCookies 1
extractAllJSON 1
reAuthRegex .*Error.*
sid1Data   username=e%40mail.de&passwort=geheim
sid1Header1 Content-Type: application/x-www-form-urlencoded
sid1Header2 Accept: */*
sid1URL    https://mein-senec.de/auth/authenticate


im log erscheint dann mit verbose 4

2017.03.07 18:18:29 4: httpmod_senec_neu_login: GetUpdate called (update)
2017.03.07 18:18:29 4: httpmod_senec_neu_login: update timer modified: will call GetUpdate in 60.0 seconds at 2017-03-07 18:19:29
2017.03.07 18:18:29 4: httpmod_senec_neu_login: AddToQueue adds update, initial queue len: 0
2017.03.07 18:18:29 4: httpmod_senec_neu_login: HandleSendQueue sends request type update to URL https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0, No Data,
header: Cookie: JSESSIONID=s-AclKYuW18iyhQK53h_ToFaf4vnQxs_c-4Klex8.application01,
timeout 2
2017.03.07 18:18:29 4: HttpUtils url=https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0
2017.03.07 18:18:29 4: https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0: HTTP response code 500
2017.03.07 18:18:29 4: HttpUtils https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0: Got data, length: 1465
2017.03.07 18:18:29 4: httpmod_senec_neu_login: Read callback: request type was update retry 0,
Header: HTTP/1.1 500 Internal Server Error
Date: Tue, 07 Mar 2017 17:18:29 GMT
Server: Apache/2.4.23 (Fedora) OpenSSL/1.0.2j-fips PHP/5.6.29
Content-Type: text/html;charset=UTF-8
Content-Length: 1465
Connection: close,
Body:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="shortcut icon" type="image/vnd.microsoft.icon"
href="/endkunde/VAADIN/themes/pip/favicon.ico" />
<link rel="icon" type="image/vnd.microsoft.icon"
href="/endkunde/VAADIN/themes/pip/favicon.ico" />
<link rel="stylesheet"
href="/endkunde/VAADIN/themes/pip/styles.css"
type="text/css">
<base href="/endkunde">
<title>MeinSenec - Fehler</title>
</head>
<body>
<div class="v-Notification error v-Notification-error" style="width: 640px; margin: 200px auto 0px auto;">
<div class="popupContent">
<div class="gwt-HTML">
<h1>Unerwarteter Fehler!</h1>
<div style="font-size: 10px; text-align: left;">
<div>
Fehler: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.senecies.meinsenec.utils.security.AccessDeniedException: Not logged in!
</div>
<div>
Bitte wenden Sie sich an Ihren Administrator und teilen Sie ihm den Fehlercode mit.<br />
Vielen Dank für Ihr Verständnis.
</div>
<div>Klicken Sie <a href="/endkunde">hier</a> um zur Anwendung zurückzugelangen oder
<a href="/endkunde/logout">hier</a> um sich neu anzumelden.
</div>
</div>
</div>
</div>
</div>
</body>
</html>no error
2017.03.07 18:18:29 3: httpmod_senec_neu_login: error while parsing JSON data: malformed JSON string, neither array, object, number, string or atom, at character offset 4 (before "<!DOCTYPE html PUBLI...") at (eval 1618786) line 1.

2017.03.07 18:18:29 4: httpmod_senec_neu_login: CheckAuth decided new authentication required
2017.03.07 18:18:29 4: httpmod_senec_neu_login: Auth called with Steps: 1
2017.03.07 18:18:29 4: httpmod_senec_neu_login: AddToQueue adds auth1, initial queue len: 0, prio
2017.03.07 18:18:29 4: httpmod_senec_neu_login: HandleSendQueue sends request type auth1 to URL https://mein-senec.de/auth/authenticate,
data: username=e%40mail.de&passwort=geheim, <========== die Formulardaten (sid1Data)
header: Content-Type: application/x-www-form-urlencoded
Accept: */*
Cookie: JSESSIONID=s-AclKYuW18iyhQK53h_ToFaf4vnQxs_c-4Klex8.application01,
timeout 2
2017.03.07 18:18:29 4: HttpUtils url=https://mein-senec.de/auth/authenticate
2017.03.07 18:18:29 4: httpmod_senec_neu_login: AddToQueue adds update, initial queue len: 0
2017.03.07 18:18:29 4: httpmod_senec_neu_login: CheckAuth requeued request update after auth, retryCount 0 ...
2017.03.07 18:18:30 4: https://mein-senec.de/auth/authenticate: HTTP response code 200
2017.03.07 18:18:30 4: HttpUtils https://mein-senec.de/auth/authenticate: Got data, length: 1819
2017.03.07 18:18:30 4: httpmod_senec_neu_login: Read callback: request type was auth1 retry 0,
Header: HTTP/1.1 200 OK
Date: Tue, 07 Mar 2017 17:18:30 GMT
Server: WildFly/10
X-Powered-By: Undertow/1
X-Powered-By: JSP/2.3
Set-Cookie: JSESSIONID=ANBSawZD9b6MndGqL7goVMWAsYkLL3Z453Sl0soV.application01; path=/
Content-Type: text/html;charset=UTF-8
Content-Language: en-
Connection: close,
Body:




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="shortcut icon" type="image/vnd.microsoft.icon"
          href="/VAADIN/themes/meinsenec/favicon.ico"/>
    <link rel="icon" type="image/vnd.microsoft.icon" href="/VAADIN/themes/meinsenec/favicon.ico"/>
    <link rel="stylesheet" href="/VAADIN/themes/meinsenec/styles.css" type="text/css">
    <base href="">

    <title>Login Portal</title>
</head>
<body>

<script type="text/javascript">

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", "/endkunde/auth/authenticate");

    var usernameField = document.createElement("input");
    usernameField.setAttribute("type", "hidden");
    usernameField.setAttribute("name", "username");
    usernameField.setAttribute("value", "e@mail.de"); <========== wurde korrekt eingefügt

    form.appendChild(usernameField);

    var passwortField = document.createElement("input");
    passwortField.setAttribute("type", "hidden");
    passwortField.setAttribute("name", "passwort");
    passwortField.setAttribute("value", "geheim"); <========== wurde korrekt eingefügt

    form.appendChild(passwortField);

    document.body.appendChild(form);
    form.submit();

</script>

<div class="loginform-wrapper">

    <div class="title-area">
        <div class="logo"></div>
    </div>

    <div id="loginContainer" class="login-form-area">
        TEST
    </div>

    <div class="title-row">Login Portal</div>
    <div class="status-text">
        <span>Version 2.0.0-SNAPSHOT-
            201703061646</span>
    </div>
</div>
</body>
</html>no error
2017.03.07 18:18:30 3: httpmod_senec_neu_login: error while parsing JSON data: malformed JSON string, neither array, object, number, string or atom, at character offset 5 (before "<!DOCTYPE html PUBLI...") at (eval 1618788) line 1.

2017.03.07 18:18:30 4: httpmod_senec_neu_login: Cookie: JSESSIONID Wert ANBSawZD9b6MndGqL7goVMWAsYkLL3Z453Sl0soV.application01 Rest path=/
2017.03.07 18:18:30 4: httpmod_senec_neu_login: HandleSendQueue sends request type update to URL https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0, No Data,
header: Cookie: JSESSIONID=ANBSawZD9b6MndGqL7goVMWAsYkLL3Z453Sl0soV.application01,
timeout 2
2017.03.07 18:18:30 4: HttpUtils url=https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0
2017.03.07 18:18:31 4: https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0: HTTP response code 500
2017.03.07 18:18:31 4: HttpUtils https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0: Got data, length: 1465
2017.03.07 18:18:31 4: httpmod_senec_neu_login: Read callback: request type was update retry 1,
Header: HTTP/1.1 500 Internal Server Error
Date: Tue, 07 Mar 2017 17:18:31 GMT
Server: Apache/2.4.23 (Fedora) OpenSSL/1.0.2j-fips PHP/5.6.29
Set-Cookie: JSESSIONID=m3KBbjI7w1lReX2JW7XppvYXgmt--zik5d6BnBrt.application01; path=/endkunde; HttpOnly
Content-Type: text/html;charset=UTF-8
Content-Length: 1465
Connection: close,
Body:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="shortcut icon" type="image/vnd.microsoft.icon"
href="/endkunde/VAADIN/themes/pip/favicon.ico" />
<link rel="icon" type="image/vnd.microsoft.icon"
href="/endkunde/VAADIN/themes/pip/favicon.ico" />
<link rel="stylesheet"
href="/endkunde/VAADIN/themes/pip/styles.css"
type="text/css">
<base href="/endkunde">
<title>MeinSenec - Fehler</title>
</head>
<body>
<div class="v-Notification error v-Notification-error" style="width: 640px; margin: 200px auto 0px auto;">
<div class="popupContent">
<div class="gwt-HTML">
<h1>Unerwarteter Fehler!</h1>
<div style="font-size: 10px; text-align: left;">
<div>
Fehler: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.senecies.meinsenec.utils.security.AccessDeniedException: Not logged in!
</div>
<div>
Bitte wenden Sie sich an Ihren Administrator und teilen Sie ihm den Fehlercode mit.<br />
Vielen Dank für Ihr Verständnis.
</div>
<div>Klicken Sie <a href="/endkunde">hier</a> um zur Anwendung zurückzugelangen oder
<a href="/endkunde/logout">hier</a> um sich neu anzumelden.
</div>
</div>
</div>
</div>
</div>
</body>
</html>no error
2017.03.07 18:18:31 3: httpmod_senec_neu_login: error while parsing JSON data: malformed JSON string, neither array, object, number, string or atom, at character offset 4 (before "<!DOCTYPE html PUBLI...") at (eval 1618790) line 1.

2017.03.07 18:18:31 4: httpmod_senec_neu_login: Cookie: JSESSIONID Wert m3KBbjI7w1lReX2JW7XppvYXgmt--zik5d6BnBrt.application01 Rest path=/endkunde; HttpOnly
2017.03.07 18:18:31 4: httpmod_senec_neu_login: CheckAuth decided new authentication required
2017.03.07 18:18:31 4: httpmod_senec_neu_login: Authentication still required but no retries left - did last authentication fail?
2017.03.07 18:18:31 3: httpmod_senec_neu_login: no parsed JSON structure available
2017.03.07 18:18:31 3: httpmod_senec_neu_login: Read response to update didn't match any Reading

Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: ch.eick am 07 März 2017, 19:08:04
Hmm,

wir hängen an einer ähnlichen Stelle. Nur bei Dir steht Du sollst den Administrator anrufen :-) Haste das schon gemacht?
Im Forum steht zu diesem Thema auch recht wenig und ich kann die Attribute von httpmod noch nicht in Gänze interpretieren.

In der Doku sollte der Bereich Login mit noch mehr Beispielen, oder einem Link zur wiki aufgepeppt werden. Ich denke einige unserer Mitstreiter haben sicherlich schon verschiedene Anmeldungen hinbekommen. Also los......wir brauchen Hilfe.

Ich werde noch im hausinternen Lan einen zweiten Anlauf direkt zu meiner KWL machen. Da läuft es etwas einfacher ohne login Seite. Letztendlich wird mein Rpi2 mit FHEM ja auch lokal laufen.

Einen schönen Abend noch
     Christian
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 07 März 2017, 19:53:21
Hallo Vize,

Du musst versuchen die Kommunikation zwischen Browser und Server exakt nachzubilden. Da kommt es auf jedes Detail bzw. Zeichen an.
Wenn also beispielsweise der Browser einen Post-Request an den Server sendet, in dem folgendes steht:

username:"ich"
password:"geheim"

dann hilft es Dir nicht weiter das als username=email@email.de&passwort=geheim zu senden. Der Server wird das ziemlich sicher nicht akzeptieren. Sowohl der Zeilenumbruch als auch die Anführungszeichen können entscheidend sein.

Zudem kann jede Header-Zeile wichtig sein. Insbesondere wenn Cookies gesetzt werden, musst Du diese auch in Deiner HTTPMOD-Konfiguration berücksichtigen. Du könntest es mit dem automatischen Cookie-Handling versuchen. Für eine einfache JSESSIONID sollte das klappen. Wenn Du aber gar keine Cookies sendest, kann es nicht klappen. Das ist kein Problem von HTTPMOD sondern von der Server-Applikation ...

Generell würde ich das schrittweise mit der Burp-Suite angehen.
Zuerst alles aufzeichnen und dann schrittweise über den Burp-Repeater versuchen die Requests zu vereinfachen und manuell zu senden. So kannst Du herausfinden in welchen Schritten die Login-Prozedur ablaufen muss und welche Header / Daten tatsächlich wichtig sind.

Gruss / viel Glück
   Stefan
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 07 März 2017, 20:48:47
Hallo Stefan,

danke für die Antwort und die Tipps.

Im meinem letzten post sieht man im log-Auszug, dass die Formulardaten zum user und passwort schonmal richtig übergebn wurden, oder?
(ist mit <========== in der jeweilgen Zeile gekennzeichnet)

Dann geht es aber nicht weiter...

Zum Post Request:
In burp steht in den Rohdaten zum login dieses
username=e%40mail.de&passwort=geheim

Muss ich diese Daten denn dann nicht auch genauso mitgeben und nicht als

username="email"
passwort="geheim"

?

Was meinst du mit dem Satz "über den Burp-Repeater versuchen die Requests zu vereinfachen und manuell zu senden".
Wie gehe ich das an?

Sorry, aber ich komme so langsam an meine Grenzen und auch durcheinander...  :-[

Hier noch Request und Response der login-Seite aus burp:
Request
POST /auth/authenticate HTTP/1.1
Host: mein-senec.de
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://mein-senec.de/
Cookie: JSESSIONID=s1y1rmNWDS4crro0goJneGeXd0wTh72juERZ4tO2.application01
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 56

username=e%40mail.de&passwort=geheim


Response
HTTP/1.1 200 OK
Date: Tue, 07 Mar 2017 16:21:03 GMT
Server: WildFly/10
X-Powered-By: Undertow/1
X-Powered-By: JSP/2.3
Content-Type: text/html;charset=UTF-8
Content-Language: de-
Connection: close
Content-Length: 1819

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="shortcut icon" type="image/vnd.microsoft.icon"
          href="/VAADIN/themes/meinsenec/favicon.ico"/>
    <link rel="icon" type="image/vnd.microsoft.icon" href="/VAADIN/themes/meinsenec/favicon.ico"/>
    <link rel="stylesheet" href="/VAADIN/themes/meinsenec/styles.css" type="text/css">
    <base href="">

    <title>Login Portal</title>
</head>
<body>

<script type="text/javascript">

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", "/endkunde/auth/authenticate");

    var usernameField = document.createElement("input");
    usernameField.setAttribute("type", "hidden");
    usernameField.setAttribute("name", "username");
    usernameField.setAttribute("value", "e@mail.de");

    form.appendChild(usernameField);

    var passwortField = document.createElement("input");
    passwortField.setAttribute("type", "hidden");
    passwortField.setAttribute("name", "passwort");
    passwortField.setAttribute("value", "geheim");

    form.appendChild(passwortField);

    document.body.appendChild(form);
    form.submit();

</script>

<div class="loginform-wrapper">

    <div class="title-area">
        <div class="logo"></div>
    </div>

    <div id="loginContainer" class="login-form-area">
        TEST
    </div>

    <div class="title-row">Login Portal</div>
    <div class="status-text">
        <span>Version 2.0.0-SNAPSHOT-
            201703061646</span>
    </div>
</div>
</body>
</html>


Kannst du noch weiterhelfen?

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 08 März 2017, 20:13:08
Hallo Andreas,

Bitte versuch den kompletten Ablauf des Logins von der ersten Seite, die die erste Session-Id setzt, bis zur Seite mit den gesuchten Daten in Burp mitzuschneiden.
In Deinen bisherigen Screenshots und Logs sehe ich nur einen Teil und die Screenshots sind aus dem Firefox (zumindest für mich) nicht besonders hilfreich.
Eventuell muss erst mal eine erste Session-ID gesetzt werden und es klappt nicht weil Du sofort auf die authenticate-Seite einsteigst.

Im Log sieht es so aus als ob Du die Login-Daten an /auth/authenticate schickst.
Als Antwort scheint dann aber wieder nur ein Login-Portal zu kommen, in dem Deine Daten als versteckte Variable drinstecken. Wie geht es denn weiter wenn Du Dich im Browser erfolgreich anmeldest? Wo kommt der Verweis oder Redirect auf die eigentliche Daten-Seite?

Ich teste solche Dinge immer erst mal in der Burp Suite durch. Wenn man die Aufzeichnung gemacht hat, kann man einzelne Requests an den "Repeater" von Burp senden (ich glaube das war mit rechte Maustaste auf dem Request). Im Repeater kann man dann den Request nochmals absenden. Das Ergebnis (z.B. eine neue Session-Id) kann man dann in den nächsten Request im Repeater reinkopieren und auch den nochmal absenden. Wenn das alles klappt, kommen am Ende der Sequenz die gewünschten Daten raus.

Da Du in HTTPMOD aber nicht alle Header definieren möchtest, kannst Du dann in der Burp-Suite versuchen einzelne Header wegzulassen. Wenn die Schritte der Reihe nach immer noch zum Ergebnis führen, dann waren die Header offensichtlich überflüssig...
So findest Du heraus, ob Referer oder User-Agent im Request benötigt werden. In Deiner bisherigen Konfiguration hast Du ja nur sid1Header1 Content-Type: application/x-www-form-urlencoded
sid1Header2 Accept: */*
das könnte zu wenig sein. In Deinen Screenshot sind deutlich mehr Header ...

Wenn in Burp  username=e%40mail.de&passwort=geheim stand, dann wird das stimmen. In Deinen Sreenshots sah das anders aus. Deshalb verwende ich lieber die Burp-Suite.

Gruss
    Stefan
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 08 März 2017, 20:27:09
Hi Stefan,

danke nochmal für deine Antwort...und vor allem für deine Geduld mit mir...  :-[

Ich werde mir das Ganze nochmal Schritt für Schritt mit burp vornehmen.
Ich werde aber wahrscheinlich nicht schlau daraus, was davon alles in die HTTPMOD-Attribute rein muss...

Werde dann mal den Mitschnitt hier einstellen...

EDIT: Hier schonmal ein screenshot aus burp mit der "Verzeichnisstruktur".
Wie gesagt, die Daten liegen als JSON-Tabelle hier:
https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0


VG
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 09 März 2017, 20:13:30
Guten Abend,

leider hatte ich noch keine Zeit, mich nochmal ausführlich mit burp zu beschäftigen.

Was ich aber noch gesehen habe:

Auf der Hauptseite https://mein-senec.de wird bereits ein Cookie (session id) gesetzt, aber nicht mit Set-Cookie, wahrscheinlich per (Java)script.
Siehe screenshot 1.

Das wird dann mitgenommen auf die Unterseite /endkunde/auth/authenticate, die 1 im screenshot zwei, und dort wird per Set-Cookie ein weiteres Cookie (session id) gesetzt, die 2 im screenshot 2.
Komisch ist, dass diese Seite beim ersten login nicht das "endkunde" im Pfad hat...  :o

Diese Cookies werden dann in die anderen Unterseiten mitgenommen.
Siehe screenshot 3.

Auch in die Unterseite mit den gewünschten Daten.
Siehe screenshot 4.

Vielleicht liegt das an diesen cookies, dass der login (noch) nicht klappt?

@Stefan
Ich habe mir auch schon deinen post hier angeschaut: https://forum.fhem.de/index.php/topic,56455.msg479909.html#msg479909
Das scheint ja ähnlich zu sein.
Daraus werde ich aber leider nicht ganz schlau, ob und wie ich das in meinem Fall umsetzen kann...  :-[
Bekomme es nicht auf die Kette...

Ich brauche wohl doch nochmal Hilfe...

Danke!

Gruß
Andreas

Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 12 März 2017, 16:21:50
Hallo Andreas,

der erste Schritt bleibt eine genaue Analyse der Kommunikation - am besten mit Burp ...
Erst wenn wir die Kommunikation zwischen Browser und Server verstanden haben, können wir das mit HTTPMOD nachbauen.

Gruss
    Stefan
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 12 März 2017, 17:24:24
OK,

sobald Zeit da ist, werde ich das machen.

Soll ich die (Roh)Daten aus burp dann einfach hier posten, oder wie kommen wir am besten weiter?

Dank und Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 12 März 2017, 20:08:18
So,

anbei mal eine Textdatei mit allen Rohdaten aus burp vom Aufruf der homepage über login bis zur Seite mit den Daten.
Die einzelnen Seiten habe ich jeweils mit =========================== getrennt.

Kann man nun daraus einen Ansatz für entsprechendes HTTPMOD-Device ableiten?

Bin für jede Hilfe dankbar...

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 12 März 2017, 21:45:52
Hallo Andreas,

Vielen Dank für den Mtschnitt. Das sieht doch gleich viel brauchbarer aus.
Ich fürchte aber, Du hast einen Request zwischendrin vergessen.
Es müsste noch ein Post auf /endkunde/auth/authenticate erfolgt sein. Den habe ich in Deinem File nicht gefunden.

Gruß / Thanx
    Stefan
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 13 März 2017, 07:44:35
Hallo Stefan,

jau, hast wohl recht...

Liefere ich heute Abend nach.

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 13 März 2017, 20:01:07
Ahoi,

so, den Post auf /endkunde/auth/authenticate habe ich entsprechend in der Datei ergänzt und diese nochmal angehängt.

Jetzt bin ich gespannt, was daraus gebaut werden kann...  :-[

Danke schonmal/nochmal!!!

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 14 März 2017, 20:57:01
Also ...

Der Mitschnitt ist jetzt leider etwas inkonsistent - zumindest passen die Cookies nicht mehr zueinander, da Du einen Teil am Sonntag und einen Teil am Montag aufgezeichnet hast. Ich würde es aber mal so zusammenfassen:

Für die Anmeldung macht man zunächst einen GET Request auf
/

In der Response auf den ersten Request wird das Cookie JSESSIONID mit dem Wert VelYNe6v_HUcGAas73kelwHIFYuNDJpYjjMpuNGT.application01
und der Option path=/
gesetzt und ein Login-Formular angeboten.

Der Anwender füllt das aus und beim Abschicken geht ein zweiter Request als POST an
/auth/authenticate
Darin steht in den POST-Daten
username=email%40email.de&passwort=geheim
im Header wird das vorher vom Server gesetzte Cookie natürlich auch mitgeschickt.

Die Antwort auf den zweiten Request enthält die eingegebenen Login-Daten im Javascript Code und per Javascript wird das ganze gleich wieder per POST als dritter Request an die nächste URL geschickt:
/endkunde/auth/authenticate
Auch hier ist das gesetzte erste Cookie natürlich wieder mit drin.
In den Daten steht nochmal
username=email%40email.de&passwort=geheim

Die Antwort auf den dritten Request ist die Bestätigung des Logins. Sie setzt das Cookie JSESSIONID neu, diesmal mit dem Wert 10xvITNZrHRtu63K1Rq-gjaao9MKvWuDTh-vBvAf.application01
und den Optionen path=/endkunde
und
HttpOnly

inhaltlich ist die Antwort ein Redirect auf
/endkunde

Die folgenden Requests lesen dann die Daten und schicken dabei beide Cookies mit.

Wenn man es exakt so mit HTTPMOD umsetzen möchte, muss also die Haupt-URL auf die Seite mit den Daten zeigen, also zum Beispiel
/endkunde/api/status/getstatusoverview.php?anlageNummer=0

Für das Login müssen drei Schritte definiert werden.
Zuerst ein Request auf /
dann einer auf
/auth/authenticate
dann auf
/endkunde/auth/authenticate

eventuell ist der mittlere Request überflüssig. Das müsste man ausprobieren.
dabei müssen die Cookies berücksichtigt werden. Normalerweise kann HTTPMOD das automatisch wenn Cookie-Handling aktiviert ist. Hier könnte es aber sein, dass es nicht klappt, da JSESSIONID gleich zweimal mit verschiedenen Path-Optionen verwendet wird. Möglicherweise ist das aber auch nicht schlimm und nur das zweite Cookie ist relevant.

Zudem müsste man noch testen, welche Header tatsächlich benötigt werden.

Also sind folgende Attribute nötig:
sid01URL
sid01Header

sid02URL
sid02Header
sid02Data

sid03URL
sid03Header
sid03Data

wenn alles klappt, sollte HTTPMOD die Haupt-URL mit den Daten abrufen können.

Wenn Du es zunächst in Burp probieren möchtest, kannst Du die einzelnen Requests im Burp-Repeater neu auslösen, aus der Response das Cookie kopieren und in den nächsten Request einfügen und dann diesen ausführen. Nach dem dritten Request sollte die Response das für den Abruf der Daten gültige Session-Cooke mit Pfad-Option /enkunde enthalten.

Im Burp Repeater kannst Du dann auch immer wieder eine Header-zeile entfernen und testen ob der Request noch zu einer gültigen Antwort führt, oder ob ein Fehler vom Server kommt. So findest Du am einfachsten heraus, welche Header-Zeilen überflüssig sind.

Wenn Du es nicht mit Burp probieren möchtest, solltest Du lieber ein paar Header mehr mitschicken als zu wenige, also z.B.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: application/json, text/plain, */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://mein-senec.de/endkunde/
If-Modified-Since: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache
Pragma: no-cache

bei mehreren Header-Zeilen musst Du die jeweils als sid01Header1, sid01Header2, sid01Header3 und dann beim nächsten Request als sid02Header1 etc. angeben.
Mit enableCookies 1 kümmert sich HTTPMOD selbst um die Cookie-Header, sofern JSESSIONID nicht tatsächlich zwei mal benötigt wird. Glaube ich aber eigentlich nicht.

Vermutlich brauchst Du die meisten Header gar nicht, aber das muss man eben ausprobieren.

Probier es doch mal, poste die komplette Konfig und das Ergebnis bzw. den relevanten Auszug aus dem Log mit Verbose 5.

Gruss
   Stefan

Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 14 März 2017, 21:10:14
Hallo Stefan,

super, vielen Dank für die ausführliche Antwort.

Eine konkrete Frage habe ich aber erstmal noch.
Ist in deiner Beschreibung sid01URL die Hauptseite, also /, oder geht es bei /auth/authenticate los?

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 14 März 2017, 21:15:49
Ich würde zunächst mal versuchen sid01URL auf / zu setzen, damit beim nächsten Request schon eine erste SessionID vorhanden ist. Wenn es mal funktioniert kann man immer noch versuchen es zu vereinfachen...

Gruß
   Stefan
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 14 März 2017, 21:27:38
Hab gerade mal versucht den GET Request manuell in burp zur Hauptseite abzusetzen.
Im Repeater muss ja auch ein Port angegeben werden. Aus meinen alten screenshots habe ich entnommen, dass es wohl Port 443 ist.

Wenn ich nun dieses in burp auf https://mein-senec.de:443 abschicke:
GET / HTTP/1.1
Host: mein-senec.de
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Connection: close


erhalte ich als Antwort:
HTTP/1.1 408 Request Timeout
Date: Tue, 14 Mar 2017 20:23:50 GMT
Server: Apache/2.4.23 (Fedora) OpenSSL/1.0.2j-fips PHP/5.6.29
Content-Length: 221
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>408 Request Timeout</title>
</head><body>
<h1>Request Timeout</h1>
<p>Server timeout waiting for the HTTP request from the client.</p>
</body></html>


Will sagen, ich scheitere schon am Anfang...

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 15 März 2017, 18:44:56
Hallo Stefan,

anbei ein erster Versuch mit "minimalen" Headern...leider erfolglos.   :-\
Einmal Log-Auszug mit verbose 5 und ein list des Devices.

Kannst du daraus erkennen, ob es mit fehlenden Headern zu tun hat, oder hast du noch weitere Tipps?

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 16 März 2017, 21:26:44
Hallo Andreas,

zum Absenden von Requests in Burp:
Ich würde den Request zuerst aufzeichnen und dann im History-Fenster mit einem rechten Mausklick und "Send to repeater" den Request in den Repeater schicken. Da musst Du keine Ports definieren und es muss eigentlich auch funktionieren. Allerdings müssen die Cookie-Werte zu diesem Zeitpunkt gültig sein. Du musst also die Requests in der richtigen Reihenfolge senden und die Werte passend ändern...

Zu Deinem Versuch mit HTTPMOD:
es scheitert hier:

2017.03.15 18:23:29 4: HttpUtils url=https://mein-senec.de/endkunde/auth/authenticate
2017.03.15 18:23:30 4: https://mein-senec.de/endkunde/auth/authenticate: HTTP response code 302
2017.03.15 18:23:30 4: HttpUtils https://mein-senec.de/endkunde/auth/authenticate: Redirect to https://mein-senec.de/endkunde/
2017.03.15 18:23:30 4: HttpUtils url=https://mein-senec.de/endkunde/
2017.03.15 18:23:30 4: https://mein-senec.de/endkunde/: HTTP response code 302
2017.03.15 18:23:30 4: HttpUtils https://mein-senec.de/endkunde/: Redirect to https://mein-senec.de/endkunde/auth/login
2017.03.15 18:23:30 4: HttpUtils url=https://mein-senec.de/endkunde/auth/login


Die Antwort auf den Request an https://mein-senec.de/endkunde/auth/authenticate ist ein Redirect. Darin steht aber das gültige Session-Cookie. Ohne zusätzliche Anweisungen folgt aber HttpUtils gleich dem Redirect und so hat HTTPMOD keine Chance das neue Cookie zu extrahieren. Die Lösung ist ein attr sid3IgnoreRedirects 1 (Siehe Doku / Wiki). Dann solltest Du einen Schritt weiter kommen.

Gruss
    Stefan
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 16 März 2017, 21:37:54
Hallo Stefan,

danke für den weiteren Tipp!

Ich glaube, ich bin auch schon etwas schlauer geworden bzw. habe noch etwas herausgefunden...

Das mit dem Repeater in burp hat jetzt soweit geklappt.
Nach ein paar Versuchen konnte ich die Prozedur auf folgendes eindampfen:

Diese Requests werden benötigt:

GET auf /  -> dort wird im Response cookie 1 gesetzt/erzeugt
POST auf /endkunde/auth/authenticate  -> dort wird cookie 2 gesetzt/erzeugt
BEIDE Cookies müssen nun mitgenommen werden
GET auf /endkunde/

Danach Aufruf der Seite mit den Daten.

Ein Minimieren der Header habe ich noch nicht getestet...

Hilft das noch weiter, bzw. gibt das neuen Aufschluss für dich?

IgnoreRedirects teste ich mal.

Danke!

Gruß
Andreas
Titel: Antw:HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 16 März 2017, 22:07:31
Ich werd bekloppt...der geht!!!!

Der Tipp mit IgnoreRedirects war der Jackpot.

Vielen, vielen Dank Stefan!

Hier nun ein list des funktionierenden Devices:
Internals:
   BUSY       0
   CFGFN
   DEF        https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0 300
   HTTPCookies JSESSIONID=eOnp8eyUzAKLy1e9C4tMxZ7hv2sePRQU8qRNHhim.application01
   Interval   300
   JSONEnabled 1
   LASTSEND   1489697931.9306
   LastAuthTry 2017-03-16 21:58:48
   MainURL    https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0
   ModuleVersion 3.3.5 - 29.9.2016
   NAME       httpmod_senec_neu_login
   NR         117009
   STATE      16
   TRIGGERTIME 1489698228.46336
   TRIGGERTIME_FMT 2017-03-16 22:03:48
   TYPE       HTTPMOD
   addr       https://mein-senec.de:443
   buf
   code       200
   conn
   data
   displayurl https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0
   header     Cookie: JSESSIONID=eOnp8eyUzAKLy1e9C4tMxZ7hv2sePRQU8qRNHhim.application01
   host       mein-senec.de
   httpheader HTTP/1.1 200 OK

Date: Thu, 16 Mar 2017 20:58:52 GMT

Server: WildFly/10

Expires: 0

Cache-Control: no-cache, no-store, max-age=0, must-revalidate

X-Powered-By: Undertow/1

X-XSS-Protection: 1; mode=block

Pragma: no-cache

X-Frame-Options: SAMEORIGIN

X-Content-Type-Options: nosniff

Strict-Transport-Security: max-age=31536000 ; includeSubDomains

Content-Type: application/json;charset=UTF-8

Connection: close

Transfer-Encoding: chunked
   httpversion 1.1
   hu_blocking 0
   hu_filecount 288
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /endkunde/api/status/getstatusoverview.php?anlageNummer=0
   protocol   https
   redirects  0
   timeout    20
   url        https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0
   value      0
   Httpcookiehash:
     Jsessionid:
       Options    path=/endkunde; HttpOnly

       Value      eOnp8eyUzAKLy1e9C4tMxZ7hv2sePRQU8qRNHhim.application01
   QUEUE:
   Readings:
     2017-03-16 21:58:52   accuexport_now  0
     2017-03-16 21:58:52   accuexport_today 3.6065
     2017-03-16 21:58:52   accuimport_now  0.57
     2017-03-16 21:58:52   accuimport_today 2.8951
     2017-03-16 21:58:52   consumption_now 0.56
     2017-03-16 21:58:52   consumption_today 21.2676
     2017-03-16 21:58:52   gridexport_now  0.02
     2017-03-16 21:58:52   gridexport_today 29.2798
     2017-03-16 21:58:52   gridimport_now  0
     2017-03-16 21:58:52   gridimport_today 0.7738
     2017-03-16 21:58:52   lastupdated     1489697698
     2017-03-16 21:58:52   machine         MCU
     2017-03-16 21:58:52   powergenerated_now 0
     2017-03-16 21:58:52   powergenerated_today 47.8423
     2017-03-16 21:58:52   readable_state  ?com.senecies.meinsenec.senec.model.SteuereinheitState.ENTLADEN?
     2017-03-16 21:58:52   state           16
     2017-03-16 21:58:52   wartungNotwendig false
   Request:
     data
     header
     ignoreredirects 0
     retryCount 1
     type       update
     url        https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0
     value      0
   Defptr:
     Readingbase:
       accuexport_now reading
       accuexport_today reading
       accuimport_now reading
       accuimport_today reading
       consumption_now reading
       consumption_today reading
       errorCode  reading
       gridexport_now reading
       gridexport_today reading
       gridimport_now reading
       gridimport_today reading
       lastupdated reading
       machine    reading
       powergenerated_now reading
       powergenerated_today reading
       readable_state reading
       state      reading
       wartungNotwendig reading
     Readingnum:
       accuexport_now
       accuexport_today
       accuimport_now
       accuimport_today
       consumption_now
       consumption_today
       errorCode
       gridexport_now
       gridexport_today
       gridimport_now
       gridimport_today
       lastupdated
       machine
       powergenerated_now
       powergenerated_today
       readable_state
       state
       wartungNotwendig
     Readingoutdated:
     Requestreadings:
       Update:
         accuexport_now reading
         accuexport_today reading
         accuimport_now reading
         accuimport_today reading
         consumption_now reading
         consumption_today reading
         errorCode  reading
         gridexport_now reading
         gridexport_today reading
         gridimport_now reading
         gridimport_today reading
         lastupdated reading
         machine    reading
         powergenerated_now reading
         powergenerated_today reading
         readable_state reading
         state      reading
         wartungNotwendig reading
   Powermap:
   Readingsdesc:
     Pm_consumption:
       rtype      w
     Pm_energy:
       rtype      whr
   Sslargs:
Attributes:
   disable    0
   enableCookies 1
   extractAllJSON 1
   httpVersion 1.1
   reAuthRegex .*Error.*
   sid1Header1 Content-Type: text/html
   sid1Header2 Accept: */*
   sid1URL    https://mein-senec.de/
   sid2Data   username=email@email.de&passwort=geheim
   sid2Header1 Accept: */*
   sid2Header2 Content-Type: application/x-www-form-urlencoded
   sid2IgnoreRedirects 1
   sid2URL    https://mein-senec.de/endkunde/auth/authenticate
   sid3Header1 Accept: */*
   sid3Header2 Content-Type: text/html
   sid3URL    https://mein-senec.de/endkunde
   timeout    20
   userattr   sid1Data sid1Header1 sid1Header2 sid1URL sid2Data sid2Header1 sid2Header2 sid2IgnoreRedirects:0,1 sid2URL sid3Data sid3Header1 sid3Header2 sid3URL sid4Header1 sid4Header2 sid4URL
   verbose    5


Was für eine Geburt...  ;)

Vielen Dank nochmal!

Gruß
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 17 März 2017, 09:01:06
Moin,

hier dann nochmal (zur besseren Übersicht) die entsprechende Konfiguration des Devices:

DEF:
https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0 300

Attribute:
enableCookies 1
extractAllJSON 1
httpVersion 1.1
reAuthRegex .*Error.*

sid1Header1 Content-Type: text/html
sid1Header2 Accept: */*
sid1URL https://mein-senec.de/

sid2Data username=<email>&passwort=<passwort>
sid2Header1 Accept: */*
sid2Header2 Content-Type: application/x-www-form-urlencoded
sid2IgnoreRedirects 1
sid2URL https://mein-senec.de/endkunde/auth/authenticate

sid3Header1 Accept: */*
sid3Header2 Content-Type: text/html
sid3URL https://mein-senec.de/endkunde


Ob man den ersten Request auf die Hauptseite (sid1XXX) wirklich braucht, weiß ich nicht...Vielleicht braucht man sid3XXX auch nicht...habe ich noch nicht getestet.

EDIT: Habe es mal an einem weiteren Device getestet...es reicht den POST-Request auf https://mein-senec.de/endkunde/auth/authenticate auszuführen. Die Sachen bei sid1XXX und sid3XXX sind nicht nötig. Das Attribut httpVersion braucht man auch nicht.

Viel Spaß!
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: brembs am 17 März 2017, 21:33:46
Bei mir funktioniert es auch wieder! Spitzenklasse, ganz vielen Dank für die Arbeit und sorry, dass ich keine Zeit hatte, mit zu helfen!
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 19 März 2017, 17:23:46
Ahoi,

nachdem das Device nun so wunderbar (wieder) funktioniert, habe ich noch eine spezielle Zusatzfrage...

Die Readings werden mit extractAllJSON erzeugt.
Darunter befindet sich ein reading zum "Zustand", also ob der Akku gerade beladen, entladen usw. wird.

Auf der Webseite und in burp bzw. den browser-Entwicklertools werden die Daten korrekt dargestellt.
Beispiel siehe screenshots.

Unter buf im HTTPMOD-Device - und somit im reading - steht aber dann das.
"readable_state":"?com.senecies.meinsenec.senec.model.SteuereinheitState.PV_UND_ENTLADEN?"

Hat jemand eine Idee, wie man es hinbekommen kann, dass dieses reading "lesbar" erzeugt wird, also als "PV und Entladen" usw. ?

Was mir noch aufgefallen ist: Rufe ich die Webseite im browser unter linux Ubuntu auf, steht im browser der Status ebenfalls in der "Langversion" wie im reading des HTTPMOD-Devices...
Da FHEM bei mir auf einem RasPi mit Raspbian läuft, könnte es vielleicht damit zusammenhängen?

Im Moment behelfe ich mir mit readingOMap, um das reading entsprechend umzubiegen. Vielleicht gibt es ja eine elegantere Lösung?

Danke schonmal für jegliche Hilfe!

Gruß
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 21 März 2017, 18:15:10
Für mich klingt das so als ob der Server abhängig vom User-Agent eine andere Antwort liefert.
Das sollte sich mit Burp nachvollziehen lassen. Hängt vermutlich auch nur an einem Header ...

Gruss
    Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 21 März 2017, 19:51:21
OK, werde ich mal testen.

Danke für den Tipp!

Gruß
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 21 März 2017, 20:41:00
Also, wenn ich den User-Agent
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
als getHeader angebe, ändert sich nichts.
Als requestHeader bringt auch nichts...

Burp unter Ubuntu habe ich mir aber noch nicht angeschaut...

Gruß
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 22 März 2017, 18:39:20
Burp müsste nicht auf einem anderen System laufen.
Wenn Du mit einem Browser unter Windows eine korrekte Antwort bekommst, diesen Request über Burp als Proxy schickst und aufzeichnest und dann die Aufzeichnung in Burp im Repeater nochmals absendest, muss die gleiche korrekte Antwort kommen.
Damit hier nichts schief läuft einfach den aufgezeichneten Request per Rechtsklick an den Repeater senden. Dann muss der absolut gleiche Request auch die gleiche Antwort liefern. Bei dem ersten Request über Burp als Proxy kommt der Request ja auch von Burp...

Dann würde ich den Request nochmal Header für Header mit Deiner vereinfachten Konfiguration vergleichen.
Irgendwo muss ein Unterscheid sein.

Du könntest auch den Browser auf einem Ubuntu-System über den Burp-Proxy auf Deinem Windows-System schicken und das aufzeichnen und mit dem funktionierenden Request vergleichen.

Gruss
   Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 23 März 2017, 08:00:14
Hallo Stefan!

ZitatWenn Du mit einem Browser unter Windows eine korrekte Antwort bekommst, diesen Request über Burp als Proxy schickst und aufzeichnest und dann die Aufzeichnung in Burp im Repeater nochmals absendest, muss die gleiche korrekte Antwort kommen.

Jepp, das hatte ich auch schon getestet, passt auch.

ZitatDann würde ich den Request nochmal Header für Header mit Deiner vereinfachten Konfiguration vergleichen.
Irgendwo muss ein Unterscheid sein.

Ich hatte auch schon versucht, alle Header aus dem browser-Request mitzuschicken. War bisher leider auch erfolglos...werde ich mir aber nochmal vornehmen.
Nur zum Verständnis, die Header (der Seite mit den Daten) muss ich doch mit getHeaderXX mitgeben, oder?

ZitatDu könntest auch den Browser auf einem Ubuntu-System über den Burp-Proxy auf Deinem Windows-System schicken und das aufzeichnen und mit dem funktionierenden Request vergleichen.

Diesen Satz verstehe ich leider nicht...was genau meinst du damit, und wie macht man das?

Gruß
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 23 März 2017, 18:19:21
Hallo Andreas,

Wenn Dein Browser unter Ubuntu andere Daten liefert als der unter Windows, dann müsste man die Unterschiede in den Requests einfach finden können wenn beides über Burp aufgezeichnet wird.
Da die Burp-Suite als Netzwerk-Proxy arbeitet, muss der Browser nicht auf dem gleichen Sytem laufen wie der Proxy. du kannst auch dem Browser auf einer Ubuntu-Maschine sagen, dass er als Proxy die Adresse und den Port verwenden soll, auf dem Burp auf einer andern System lauscht.
Einfach in den Proxy-Settings des Browsers eintragen ...

Gruß
    Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 23 März 2017, 20:48:01
Sorry, Stefan, jetzt versteh ich nur noch Bahnhof...

In der burp-Suite stelle ich doch generell den Proxy auf 127.0.0.1:8080...oder was meinst du mir "Adresse und Port verwenden soll, auf dem Burp auf einem anderen System lauscht"?
Wie soll ich da was in den Proxy-Einstellungen des browsers eintragen?

Ich raff's einfach nicht...  :-[

Komme mit burp unter Ubuntu mit Firefox auch nicht weiter. Stelle ich im Firefox den Proxy 127.0.0.1:8080 gemäß burp ein, warnt Firefox beim Aufruf der https-Seite vor einem nicht bekannten Zertifikat, und dass Firefox keine Ausnahme hinzufügen kann...ich kann die Seite dann nicht aufrufen.
Manuell kann ich das Zertifikat von burp auch nicht im Firefox einpflegen...
Kann es also bisher nicht unter Ubuntu mit Firefox nachstellen.

Gruß
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 24 März 2017, 20:47:41
Hallo Andreas,

statt 127.0.0.1 kannst Du in der Burp Suite unter Proxy - Options auch angeben, dass der Proxy auf allen Adressen des Systems antworten soll.
Dann kannst Du die LAN-Adresse des Systems mit Burp als Proxy auf anderen Systemen angeben.

Gruss
    Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 25 März 2017, 15:15:51
Hallo Stefan,

vielleicht dämmert es mir so langsam, worauf du hinaus willst...sicher bin ich aber nicht...

Ich starte Windows und Ubuntu aus einem Multi-Boot-System heraus vom gleichen PC.
Die LAN-Adresse des Systems ist also immer die gleiche, weil fest für den PC vergeben.

Falls du das meintest...

Gruß
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 27 März 2017, 19:51:16
Ok, auf einem Multiboot-System bringt Dich das nicht weiter.

Gruss
    Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Helms-je am 02 November 2017, 14:55:02
Zitat von: brembs am 17 März 2017, 21:33:46
Bei mir funktioniert es auch wieder! Spitzenklasse, ganz vielen Dank für die Arbeit und sorry, dass ich keine Zeit hatte, mit zu helfen!

Hallo,

seit dem 30.06 geht das login so nicht mehr. Gibt es eine Lösung?

mfg
Jens
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: parabacus am 10 Januar 2018, 19:54:16
Hallo!

Ich hab im Keller auch einen SENEC-Speicher stehen und schau mir fast täglich die Daten auf der SENEC-Seite an.

Ich bin vor einigen Tagen soz. per Zufall auf FHEM gestossen, da ich unserer Wärmepumpe ein Interface verpassen wollte. Nachdem ich das erfolgreich geschafft habe, entstehen natürlich weitere Wünsche.  ;)
Nach Bemühen der Forums-Suche mit Schlagwort "SENEC", kam dieser Beitrag als einziges Ergebnis. Mit Bedauern habe ich den letzten Eintrag gelesen...
Nichts desto Trotz würde mich dennoch interessieren, wie die Einbindung in FHEM dann überhaupt funktioniert. Aus den Codeteilen in den einzelnen Beiträgen konnte ich leider nicht schlau werden. Ich muss auch noch zugeben, dass ich in Sachen FHEM noch recht "grün" bin, von Programmierung aber schon etwas Ahnung habe - allerdings in C, bisher nur auf embedded Systemen und das ist auch schon einige Jahre her.
Vielleicht mag jemand ein paar erklärende Worte dazu schreiben - wäre sehr nett!

Ciao
Tom

PS: ..und Klasse wär's, wenn's wieder funktionieren würde. :-)
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Tiger84 am 08 Februar 2018, 18:55:52
Hallo zusammen,

vielen Dank für die guten Info's hier im Thread. Ich habe heute meinen Speicher von Senec bekommen. Ich konnte das Device von Vizw leider noch nicht testen, da ich den online Zugang noch nicht habe.

Ich stelle mir aber die Frage, warum es über die Daten über die Website https://mein-senec.de einbinden soll, wenn ich doch genauso gut per LAN und IP auf den Speicher zugreifen kann? Hier kann ich durch den Aufruf der lokalen IP ohne Benutzername usw alle Daten sehen.

Oder ist das nur eine versteckte Weiterleitung? Wäre ja einfacher lokal zu bleiben, oder irre ich mich hier?
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: parabacus am 22 Februar 2018, 19:48:48
Inzwischen bin ich schon hinsichtlich FHEM um einiges schlauer geworden und hab auch schon vieles probiert und teilweise integriert.
Jetzt bin ich hier wieder angekommen, da ich noch immer Interesse habe, u.a. meinen Speicher-Status mit anzuzeigen und ggf. damit auch später mal was zu steuern.
Nach einiges Versuchen es so zu machen, wie Vize (Andreas), bin ich aber noch nicht ans Ziel gekommen. Entweder ich mach was falsch oder es geht noch immer nicht.

@Tiger84: Hast du dich vielleicht an der Möglichkeit den Akku lokal im LAN einzubinden versucht?
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Tiger84 am 03 April 2018, 20:17:57
leider nicht wirklich und dann sind bei dem Wetter auch wieder "Outdoor"-Projekte hinzugekommen...
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: parabacus am 04 April 2018, 14:06:13
Alles klar.. - Outdoor-Aktivitäten haben bei mir zwischenzeitlich auch wieder extrem erhöhte Priorität. Ab 3. September hab ich wieder richtig Zeit für anderes..  ;D
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: brembs am 20 Juni 2018, 22:11:28
Seit ein paar Tagen, nach einer Umstellung bei SENEC funktioniert der Login wieder einmal nicht mehr:

The request was rejected because the URL contained a potentially malicious String ";"

Sieht so als als bentzten sie SpringSecurity

https://github.com/spring-projects/spring-security

was keine URL im Format /auth/oauth/authorize;jsessionid=<sessionid> mehr zulässt. Habe mal im HTTPMOD Thread eine Anfrage hinterlassen und werde etwaige Lösungen hier posten. Nicht sicher ob man das mit entsprechenden Befehlen verhindern kann, oder ob Stefan das Modul updaten muss.
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 21 Juni 2018, 19:57:06
Hallo brembs,

Ich glaube nicht dass HTTPMOD geändert werden muss. Aber um die Konfiguration an das neue Login-Verfahren anzupassen muss sich jemand die Mühe machen und genau analysieren, welche Requests / Responses hin und hergeschickt werden. Mit den Replacement-Features von HTTPMOD müsste dann alles abbildbar sein.

Gruss
   Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 23 Juni 2018, 15:52:06
Hallo Stefan,

vor ein paar Tagen habe ich das neue login-Verfahren mal mit burp aufgezeichnet.
Wenn ich (in einigen Tagen) wieder zu Hause bin, schicke ich dir mal den Mitschnitt.

Es sieht so aus, als ob nun session-tokens (oder wie die heißen) erzeugt und mitgeschickt werden.
Mal sehn, ob man das mit den replacements von HTTPMOD nachbauen kann.

Ab welcher Version von HTTPMOD funktionieren die replacements? Habe lange nicht mehr ein update gemacht...  :-[

VG
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 24 Juni 2018, 13:18:25
Hallo Andreas,

Ich glaube die Replacements sind seit 2016 drin.

Gruss
   Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 01 Juli 2018, 14:00:05
Hallo Andreas,

ich habe mir das neue Login-Verfahren mit Deinen Informationen mal näher angesehen.
Es ist mit HTTPMOD machbar.

Man muss ca. 15 Schritte abarbeiten und dabei Readings für code und state sowie zwei Session IDs tracken.
Die automatische Cookie-Funktion wird dabei vermutlich auch nicht funktionieren, da man zwei JSESSIONIDs vorhalten muss.
Mit Replacements sollte das aber alles machbar sein, aber es ist sicher mühsam ;-)

Sobald ich mal ein paar Stunden Zeit dafür habe, könnte ich versuchen eine Zusatzfunktion in HTTPMOD einzubauen, die das stark vereinfacht und den Redirects automatisch folgt, dabei die richtigen Session-Cookies verwendet und so auch code und state mitnimmt.
Die Fhem HttpUtils verfolgen zwar prinzipiell Redirects, aber soweit ich das verstanden habe, werden dabei die Cookies nicht mitgenommen. Folglich muss man es bisher manuell in HTTPMOD konfigurieren.

Falls Du Dir die Mühe machen möchtest:
1) GET /login
aus der Response die erste Session ID holen und aus der Location den State holen

2) GET /auth/oauth/authorize?client_id=portale&redirect_uri=https://mein-senec.de/login&response_type=code&state=QeiJtQ
mit dem Session Cookie und dem State aus dem ersten Request
aus der Response die neue Session-Id für /auth holen

3) GET /auth/login
mit der Session Id als Cookie aus 2

4) POST /auth/login
mit der Session Id als Cookie aus 2
und mit User und Password
aus der Response die neue Session-Id holen und aus der Location den State

usw.

Aufpassen muss man dabei dass man die richtigen Session-Ids zum passenden Pfad nimmt.

Gruss
   Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: brembs am 04 Juli 2018, 06:43:43
OK, klingt aufwändig aber machbar, vielen Dank für die Anleitung! Hoffe, ich finde etwas Zeit um das mal aus zu probieren...
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: StefanStrobel am 04 Juli 2018, 20:34:26
Hallo,

anbei eine neue Version von HTTPMOD zum Testen. Es gibt zwei neue Attribute:

enableRedirects
aktiviert ein Redirect-Handling innerhalb von HTTPMOD, so dass auch Cookies zwischen Redirects verwaltet werden können.

dontRequeueAfterAuth
verhindert dass der letzte Request nach Durchführung der Login-Prozedur nochmals gesendet wird.

Für die meine-senec Website sieht eine einfache Konfiguration dann folgendermassen aus:


define senec HTTPMOD https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0 0
attr senec dontRequeueAfterAuth 1
attr senec enableControlSet 1
attr senec enableCookies 1
attr senec handleRedirects 1
attr senec reAuthRegex Login.Portal
attr senec sid01URL https://mein-senec.de/auth/login
attr senec sid01Header1 Accept: text/html, application/xhtml+xml, image/jxr, */*
attr senec sid01Data =&username=xxxx&password=xxxx


Ich hoffe es klappt auch bei Euch auf Anhieb ;-)

Gruss
   Stefan
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 05 Juli 2018, 16:11:22
Hi Stefan,

es läuft!!!  ;D 8)

Vielen, vielen Dank nochmals an dieser Stelle!
Wahnsinn, was es doch für programmiertechnische Perlen hier gibt!

VG
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 05 Juli 2018, 16:55:13
Zitat von: Tiger84 am 08 Februar 2018, 18:55:52Ich stelle mir aber die Frage, warum es über die Daten über die Website https://mein-senec.de einbinden soll, wenn ich doch genauso gut per LAN und IP auf den Speicher zugreifen kann? Hier kann ich durch den Aufruf der lokalen IP ohne Benutzername usw alle Daten sehen.

Hi,

ja, man kann auch im LAN eine HTTPMOD-Abfrage des Speichers machen.
"Nachteil" hierbei ist, dass die interne Zeitanzeige des SENEC-Speichers 1 bzw. 2 Stunden (Sommer/Winterzeit) hinkt. Dadurch passen die Tageswerte dann nicht.
Ausserdem kann man sich von der internen Seite nicht alle Sachen holen, die im Online-Portal dargestellt werden, z.B. getrennte Darstellung Netzbezug zu Netzeinspeisung oder auch die Daten zu (falls gebucht) EconamicGrid- und Gutscheinbeladungen.

Anbei mal ein screenshot meiner readingsGroup zum SENEC.

VG
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: brembs am 06 Juli 2018, 00:20:29
Alles funktioniert wieder! Stefan, Du bist absolute Spitze! Genial!

@Vize: Ich komme seit der Umstellung auf EconamicGrid gar nicht mehr auf den lokalen Router drauf und kann da also keine Werte mehr auslesen. Das soll so sein, haben die mir damals gesagt. Kommst Du noch auf den lokalen Router und kannst dort Werte auslesen? Wenn ja, wie machst Du das?
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: Vize am 06 Juli 2018, 08:02:08
Moin,

das kommt darauf an, welche Version des Speichers du hast.
Ohne "Umwege" geht das nur bei den V2 (Li) Speichern. Die haben keinen externen VPN-Router mehr, sondern einen integrierten.
Diese Speicher kann man dann ganz normal im LAN über die IP-Adresse erreichen.

Bei den älteren Klumpen (Pb und Li) geht das leider nicht. Dort wird dann auch keine Adresse aus deinem LAN auf dem Display angezeigt, sondern die des Senec-VPNs.

VG
Andreas
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: brembs am 06 Juli 2018, 08:16:40
Ah, alles klar, das erklärt es. Dauert bei mir noch 5 Jahre, bis ich mir einen neuen Speicher zulege...  8)
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: xerion am 31 Dezember 2018, 14:33:19
Zitat von: Vize am 05 Juli 2018, 16:55:13
Hi,

ja, man kann auch im LAN eine HTTPMOD-Abfrage des Speichers machen.
"Nachteil" hierbei ist, dass die interne Zeitanzeige des SENEC-Speichers 1 bzw. 2 Stunden (Sommer/Winterzeit) hinkt. Dadurch passen die Tageswerte dann nicht.
Ausserdem kann man sich von der internen Seite nicht alle Sachen holen, die im Online-Portal dargestellt werden, z.B. getrennte Darstellung Netzbezug zu Netzeinspeisung oder auch die Daten zu (falls gebucht) EconamicGrid- und Gutscheinbeladungen.

Anbei mal ein screenshot meiner readingsGroup zum SENEC.

VG
Andreas

Hallo Andreas,

wäre es vielleicht möglich, dass du die ReadingsNames und Regex hoch lädst. Ich würde das auch gerne über die Seite aus dem LAN umsetzen aber bekomme das irgendwie mit den Regex nicht hin.
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: magic64 am 29 Mai 2019, 18:47:40
Beimir funktioniert die Konfiguration von Atwort 53 nicht.
Kann jemand da mal nachschauen was ich falsch mache:

defmod senec2 HTTPMOD https://mein-senec.de/endkunde/api/status/getstatusoverview.php?anlageNummer=0 0
attr senec2 userattr sid01Data sid01Header1 sid01URL
attr senec2 dontRequeueAfterAuth 1
attr senec2 enableControlSet 1
attr senec2 enableCookies 1
attr senec2 handleRedirects 1
attr senec2 reAuthRegex Login.Portal
attr senec2 sid01Data &username=xxx@xxx.de&password=xxxxx
attr senec2 sid01Header1 Accept: text/html, application/xhtml+xml, image/jxr, */*
attr senec2 sid01URL https://mein-senec.de/auth/login
attr senec2 timeout 60
attr senec2 verbose 4


Danke
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: brembs am 25 September 2019, 10:16:42
ZitatBeimir funktioniert die Konfiguration von Atwort 53 nicht.
SENEC ändert die Seite ständig und man muss danach immer alles neu konfigurieren. Zur Zeit haben wir keine funktionierende Konfiguration mehr, leider.
Titel: Antw:[gelöst] HTTPMOD - Website hat login-Verfahren geändert
Beitrag von: rcaspar am 05 Februar 2023, 14:38:11
Restarte den Thread mal, in der Hoffnung jemand kann mich unterstützen.

Ich versuche Mittels HTTPMOD die Leistungsdaten aus unserem PVA-Portal auszulesen und scheitere momentan am Login.

Mittels burp fand ich den Request mit UID und PW, sowie das nachgelagerte Cookie. Doch leider bin ich ein absoluter Programmier-DAU und komme nicht weiter...

René