Bash Verständnisproblem Fritzbox Session ID

  • Hallo zusammen,

    seit dem letzten Fritzbox-Update funktionieren die Zugriffe von meinem Raspberry auf die FB nicht mehr. Grund ist eine ungültige Session-ID

    Ich verwende seit längerem ein Bash- Skript dafür, das ich selbst mal kopiert haben. Funktionierte bis jetzt auch immer ohne Probleme.

    Bash
    #!/bin/bash
    FBF="192.168.178.1"
    USER="fritz1682" # oder falls nicht vorhanden, dann leer lassen
    PASS="passwort"
    CHALLENGE=$(curl -s -k "${FBF}/login_sid.lua" | grep -Po '(?<=<Challenge>).*(?=</Challenge>)')
    MD5=$(echo -n ${CHALLENGE}"-"${PASS} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
    RESPONSE="${CHALLENGE}-${MD5}"
    #echo ${RESPONSE}
    SID=$(curl -i -s -k -d "response=${RESPONSE}&username=${USER}" "${FBF}" | grep -Po -m 1 '(?<=sid=)[a-f\d]+')
    echo ${SID} | cut -d" " -f1

    Ich bekomme seit dem letzten Update immer eine leere Ausgabe...

    Leider reichen meine Bash- Kenntnisse (quasi nicht vorhanden) nicht, um den Fehler zu analysieren...

    Wenn ich mir die

    Code
    #echo ${RESPONSE}

    ausgeben lasse, erhalte ich z.B. sowas:

    e89a3d3d-e30d7e59c7e3ce2d824f7b630882bcba

    Scheint daher erstmal zu funktionieren, leider ist das keine gültige Session-ID...

    Hat jemand eine Idee?

  • Ich verstehe zwar nicht warum, aber es funktioniert... :conf:

    Benutze das Script um der Fritzbox eine Session-ID zu entlocken. Diese braucht man z.B. zum auslesen und ansteuern der DECT- Heitkörper- Thermostate von AVM.

    Das Script lief fehlerfrei bis zum letzten Update der Fritzbox...

    Vielen Dank!

  • Ich verstehe zwar nicht warum, aber es funktioniert...

    Ändere einmal, temporär, die letzten beiden Zeilen zu:

    Bash
    curl -i -s -k -d "response=${RESPONSE}&username=${USER}" "${FBF}"
    #echo ${SID}

    Dann erfolgt eine komplette Ausgabe ohne die Filterung auf die SID, hier als Beispiel die letzten paar Zeilen:

    Code
    {"txt":"Telefonbuch","par":"tBook","pos":10},"tam":{"txt":"Anrufbeantworter","par":"tel","pos":20},"filter":{"txt":"Filter","par":"inet","tab":["kidLis","kidPro","trafprio","trafapp"],"pos":40}},"currentPid":"overview","username":"joker","setBoxTime":false,"boxType":"FRITZ!Box 7590","boxName":"","teaserOverlay":false,"fromInternet":false,"lang":"de","sid":"f6b123e123c1234"});
    </script>
    <script src="/js/vendor.js"></script>
    <script src="/js/box-login.js"></script>
    <script src="/js/box.js"></script>
    </body>
    </html>

    Und dort steckt die SID als "sid":"f6b123e123c1234". Die fischt der grep dann heraus.

    Vermutlich war das Ausgabeformat vor dem Update der FritzBox anders. Aber das kann ich mangels alter Firmware nicht testen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!