Startseite
Foren
Neue Beiträge
Foren durchsuchen
Aktuelles
Neue Beiträge
Neue Ressourcen
Profilnachrichten
Letzte Aktivität
Ressourcen
Aktuellste Rezensionen
Ressourcen suchen
Mitglieder
Zurzeit aktive Besucher
Profilnachrichten
Profilnachrichten suchen
Anmelden
Registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Neue Beiträge
Foren durchsuchen
Menü
Anmelden
Registrieren
Install the app
Installieren
Startseite
Foren
System-, Anwendungs- und Softwareentwicklung
Sonstige Sprachen, Technologien und Tools
FRITZ!Box Session-ID/Login mit Bash
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Auf Thema antworten
Nachricht
<blockquote data-quote="lano" data-source="post: 1397" data-attributes="member: 9"><p>Manchmal möchte man Daten seiner FRITZ!Box abrufen um sie mittels Script weiter zu verarbeiten, anzuzeigen oder sonstigen Schabernack damit zu treiben. Dazu benötigt man eine Session-ID siehe <a href="https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AVM_Technical_Note_-_Session_ID.pdf">https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AVM_Technical_Note_-_Session_ID.pdf</a></p><p></p><p>Ein kleines Script hilf dabei</p><p></p><p>[CODE=bash]</p><p>#!/bin/bash</p><p></p><p>IP="fritz.box"</p><p>FBUID="user"</p><p>SECRET="passwd"</p><p>[/CODE]</p><p></p><p>Als erstes brauchen wir die IP der FRITZ!Box, alternativ reicht uns auch der Domain Name, Standard mäßig [ICODE]fritz.box[/ICODE].</p><p>Dann muss natürlich ein User auf der FRITZ!Box existieren und wir brauchen das dazugehörige Password.</p><p></p><p>Als nächstes brauchen wir eine Challenge. Die bekommen wir von der FRITZ!Box mittels [ICODE]wget[/ICODE].</p><p>[CODE=bash]</p><p>CHALLENGE=`wget --no-check-certificate -O - "http://$IP/login_sid.lua" 2>/dev/null | sed 's/.*<Challenge>\(.*\)<\/Challenge>.*/\1/'`</p><p>[/CODE]</p><p></p><p>Dann fügen wir Challenge und Password zu einem String zusammen.</p><p>[CODE=bash]</p><p>CPSTR="$CHALLENGE-$SECRET"</p><p>[/CODE]</p><p>Von diesem String benötigen wir den MD5 Hash.</p><p></p><p>Bevor wir mit [ICODE]md5sum[/ICODE] und [ICODE]awk[/ICODE] den MD5 Hash erstellen müssen wir [ICODE]iconv[/ICODE] bemühen um den String ind das passende Format zu bekommen.</p><p>[CODE=bash]</p><p>MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`</p><p>RESPONSE="$CHALLENGE-$MD5"</p><p>[/CODE]</p><p>Nachdem die Challenge wieder vor unseren MD5 Hash gehängt wurde haben wir jetzt unseren Response.</p><p></p><p>Damit können wir jetzt die URL Parameter zusammen bauen die wir im nächsten Schrit dann wget mitgeben.</p><p>[CODE=bash]</p><p>URL_PARAMS="username=$FBUID&response=$RESPONSE"</p><p>[/CODE]</p><p></p><p>Nun können wir die URL zusammen bauen und uns mit [ICODE]wget[/ICODE] eine Session-ID holen.</p><p>[CODE=bash]</p><p>SID=`wget --no-check-certificate -O - "https://$IP/login_sid.lua?$URL_PARAMS" 2>/dev/null | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/'`</p><p>[/CODE]</p><p></p><p>Nun haben wir eine gültige Session-ID mit der wir nun reichlich viel Blödsinn anstellen können.</p><p></p><p>Als Beispiel können wir uns die Daten der Übersichtsseite der FRITZ!Box anzeigen lassen.</p><p>[CODE=bash]JSON=`wget --no-check-certificate -O - --post-data "xhr=1&sid=$SID&lang=de&page=overview&xhrId=all&useajax=1&no_sidrenew=" "https://$IP/data.lua" 2>/dev/null`</p><p>echo $JSON[/CODE]</p><p></p><p>Als Ausgabe erhalten wir ein unschön formatiertes json.</p></blockquote><p></p>
[QUOTE="lano, post: 1397, member: 9"] Manchmal möchte man Daten seiner FRITZ!Box abrufen um sie mittels Script weiter zu verarbeiten, anzuzeigen oder sonstigen Schabernack damit zu treiben. Dazu benötigt man eine Session-ID siehe [URL]https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AVM_Technical_Note_-_Session_ID.pdf[/URL] Ein kleines Script hilf dabei [CODE=bash] #!/bin/bash IP="fritz.box" FBUID="user" SECRET="passwd" [/CODE] Als erstes brauchen wir die IP der FRITZ!Box, alternativ reicht uns auch der Domain Name, Standard mäßig [ICODE]fritz.box[/ICODE]. Dann muss natürlich ein User auf der FRITZ!Box existieren und wir brauchen das dazugehörige Password. Als nächstes brauchen wir eine Challenge. Die bekommen wir von der FRITZ!Box mittels [ICODE]wget[/ICODE]. [CODE=bash] CHALLENGE=`wget --no-check-certificate -O - "http://$IP/login_sid.lua" 2>/dev/null | sed 's/.*<Challenge>\(.*\)<\/Challenge>.*/\1/'` [/CODE] Dann fügen wir Challenge und Password zu einem String zusammen. [CODE=bash] CPSTR="$CHALLENGE-$SECRET" [/CODE] Von diesem String benötigen wir den MD5 Hash. Bevor wir mit [ICODE]md5sum[/ICODE] und [ICODE]awk[/ICODE] den MD5 Hash erstellen müssen wir [ICODE]iconv[/ICODE] bemühen um den String ind das passende Format zu bekommen. [CODE=bash] MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'` RESPONSE="$CHALLENGE-$MD5" [/CODE] Nachdem die Challenge wieder vor unseren MD5 Hash gehängt wurde haben wir jetzt unseren Response. Damit können wir jetzt die URL Parameter zusammen bauen die wir im nächsten Schrit dann wget mitgeben. [CODE=bash] URL_PARAMS="username=$FBUID&response=$RESPONSE" [/CODE] Nun können wir die URL zusammen bauen und uns mit [ICODE]wget[/ICODE] eine Session-ID holen. [CODE=bash] SID=`wget --no-check-certificate -O - "https://$IP/login_sid.lua?$URL_PARAMS" 2>/dev/null | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/'` [/CODE] Nun haben wir eine gültige Session-ID mit der wir nun reichlich viel Blödsinn anstellen können. Als Beispiel können wir uns die Daten der Übersichtsseite der FRITZ!Box anzeigen lassen. [CODE=bash]JSON=`wget --no-check-certificate -O - --post-data "xhr=1&sid=$SID&lang=de&page=overview&xhrId=all&useajax=1&no_sidrenew=" "https://$IP/data.lua" 2>/dev/null` echo $JSON[/CODE] Als Ausgabe erhalten wir ein unschön formatiertes json. [/QUOTE]
Zitate einfügen...
Authentifizierung
Antworten
Startseite
Foren
System-, Anwendungs- und Softwareentwicklung
Sonstige Sprachen, Technologien und Tools
FRITZ!Box Session-ID/Login mit Bash
Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden.
Akzeptieren
Erfahre mehr...
Oben
Unten