Ankündigung

Einklappen
Keine Ankündigung bisher.

HS: Anmeldung über /shshtm per POST-Befehl

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HS: Anmeldung über /shshtm per POST-Befehl

    Hallo,

    ich stehe gerade vor folgendem Problem:
    wenn ich auf das Gira Portal gehe, um mich per Web in den HS einzuwählen, dann gebe ich ja nur den Namen ein und lande auf der Anmeldeseite des HS (die unverschlüsselte Variante). Jetzt habe ich ein eigenes Portal für unsere Kunden entwickelt, das ähnlich funktioniert. Jetzt hätte ich das aber gerne so, dass der Kunde auf dem Portal direkt Name, Benutzername, Passwort usw. eingeben kann (Refresh und Design sind festgelegt) und direkt auf der Weboberfläche landet. Wenn ich das mit der unverschlüsselten Variante /hshtm mache, dann klappt das sehr gut, aber: man sieht das Kennwort...und das ist schlecht.

    Mit der /shshtm Variante klappt das natürlich nicht, da Kennwort verschlüsselt. Jetzt ist es natürlich nicht per MD5 verschlüsselt, sondern irgendwie anders. Gibt es, kennt jemand eine Möglichkeit (vielleicht liest jemand von Dacom auch mit) per POST-Befehl (in der HTML Sprache zum übergeben von Variablen, ohne sichtbar zu sein) die Nutzerdaten zu übergeben und damit automatisch das einloggen am HS zu veranlassen ? Beim HS ist das alles generell als GET Befehl geschrieben, daher ist immer alles in der URL-Zeile sichtbar. In der verschlüsselten Version auch nicht weiter schlimm, aber da klappt das mit der GET Übergabe von einer anderen Seite nicht, da ich die Parameter bzw. die Verschlüsselung nicht kenne.

    Kurz und Knapp: der User soll sich in den HS einloggen können, ohne dass er die nackte,weiße Anmeldeseite des HS zu sehen bekommt.

    Zugeben: klingt kompliziert, extravagant usw. aber vielleicht weiß jemand Rat ?

    MfG
    schmiddi998

    #2
    Hallo,

    also für Sourcecode-Analysen isses heute zu spät , aber Grundsätzlich muss das gehen..
    Was der Browser ohne "shared secret" oder sonstige Verschlüsselungsmassnahmen schafft, kann auch jedes andere Programm imitieren.

    Schau Dir mal den Sourcecode der shs-Seite an, da läuft ein (auf den ersten Blick echt lustiges) JS, das letztlich sowas wie nen md5-Hash generiert.

    Dabei gibts nun diverse Varianten die eine Interaktion mit dem jeweiligen Homeserver, Session, Tageszeit o.ä., damit sich einige IV (IV=Initialisierungsvektor, also enthaltene Zufallszahlen, z.B. var a/b/c/d) ändern. Falls nicht, ist es nur Security by obscurity und umso einfacher, dafür müsste man die "/shs" mehrerer HS vergleichen..

    Aber meine spontane einfachste Idee: Portalseite liest "/shs" (oder include bauen) vom jeweiligen HS, reicht das JS komplett an den Anwender-Browser durch und submitted dann direkt auf den Ziel-HS mit denselben vom Browser erechneten Parametern..

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #3
      mmmhhh..das mit dem Include hört sich plausibel an. Dann setze ich einfach user und pw ein, lass das ganze automatisch per JS "submitten" und "das lustige JS für die md5 immitation" errechnet mir den passenden Hash. Ich denke der Hash ist ein mix aus Passwort, Timestamp, Session ID und den von dir erwähnten Zufallszahlen. Hab mir den Quelltext von der shs auch mal angeschaut. Das JS sieht echt ein wenig übertrieben aus. Hat aber wohl wirklich etwas damit zu tun, um Leute wie uns zu verwirren. Wenn der HS php könnte, würden wir den Quellcode nicht sehen können und dann könnte man diesen einfacher gestallten.

      Erstmal vielen Dank für die Tipps. Das mit dem Include teste ich mal.

      Kommentar


        #4
        Will euch mein Wissen nicht vorenthalten. Wer sich ein eigenes Portal bauen will und sich verschlüsselt auf seinen HS einwahlen will, kann folgendes php-Script dafür benutzen. Bei Gelegenheit mach ich mal ein komplettes Beispiel fertig. Mein Portal, dass ich für die Firma gemacht habe, kann ich euch nicht geben.

        PHP-Code:
          $fp fsockopen ($row['ip'],$row['port'], $errno$errstr30);  
          if (!
        $fp) {  
          die(
        "$errstr ($errno)<br />\n");  
          } else {  
          
        fputs ($fp"GET sshshtm.htm HTTP/1.0\r\n\r\n");  
          while (!
        feof($fp)) {  
          
        $str .= fgets($fp,128);  
          }  
          
        fclose($fp);  
          }  
          
        $str stristr($str,"<html>");
          
        $idx_start strpos($str,"name=\"idx\"") + 18;
          
        $idx_len strpos($str,"><",$idx_start) - $idx_start 1;
          
        $idx substr($str,$idx_start,$idx_len);
          
        $tsx_start strpos($str,"name=\"tsx\"") + 18;
          
        $tsx_len strpos($str,"><",$tsx_start) - $tsx_start 1;
          
        $tsx substr($str,$tsx_start,$tsx_len);
          
        $str substr($str,0,strpos($str,"function hash(form)"));
          
        $str.= "function hash(){
            url=\""
        .$row['ip'].":".$row['port']."/shs?\";
            url+=\"user="
        .$user."\";
            url+=\"&pw=\"+binl2hex(core_hmac_md5(\""
        .$tsx."\",\"".$pw."\"));
            url+=\"&idx="
        .$idx."\";
            url+=\"&cl=SWS1024V\";
            url+=\"&ref=R2\";
            location.href=url;
            this.onsubmit=null;
            return false;
            }
            </script>
            <body onLoad='hash()'></body>
            "
        ;
        echo 
        "".$str.""
        Hoffe das Script kommt richtig rüber. Der WYSIWYG-Editor zerhackt es ein wenig. Ich hatte gerade noch was zu dem Script geschrieben, aber es wurde vom Forum abgeschnitten, durch AutoTextFormatierung. Naja... bei Fragen einfach fragen.

        EDIT: Kurz was zur Funktion. Das Script holt sich vom HS die Datei shshtm.htm, wo einige Zufallszahlen und Schlüssel drin stehen. Dann werden Benutzername/Passwort eingesetzt, noch etwas die Funktion HASH angepasst und anschließend wird das Passwort mit der Funktion HASH verschlüsselt und die URL zum HS aufgerufen. Die Verschlüsselung geschieht mit dem HS eigenen Algo. Der wird automatisch vom HS "included".

        Kommentar

        Lädt...
        X