Auf Webseite einloggen mit Script (ohne Browser)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Auf Webseite einloggen mit Script (ohne Browser)

    Hallo Leute,
    ich möchte ein Script basteln, dass sich automatisch mit Log und Pass an einem Router anmeldet ohne einen Browser zu bemühen. Die Seite hat nur drei Elemente: zwei Texteingabefelder (Log, Pass) und einen Button namens Login. Ich müsste also rausfiltern was für Daten die Seite an den Router sendet, wenn ich den Button Login mit den ausgefüllten Feldern (Log, Pass) drücke. Wie muss man das angehen? Wo kann ich die Events sehen die eine Website sendet?
    Applescript oder bash.
    Die Sprache ist die Wurzel des Missverständnisses.

    var firstName = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
    firstName = firstName.stringByReplacingOccurrencesOfString("i", withString: "udu")
  • Ich wäre froh wenn Du das Augenmerk mehr auf den Inhalt und weniger auf die Form legen würdest und dafür die Tippenergie vielleicht in ein wenig Ausführlichkeit investieren könntest. Bereits beim letzten Beitrag haben mir Deine Antworten rein nichts weitergeholfen.
    Die Sprache ist die Wurzel des Missverständnisses.

    var firstName = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
    firstName = firstName.stringByReplacingOccurrencesOfString("i", withString: "udu")
  • du bist aber der/diejenige der/die hilfe benötigt, also solltest du dir mühe geben.

    und was konkret dir an meiner aussage nicht hilft könntest du ja sagen.
    hast du keine ahnung wie man sich den quelltext einer seite anzeigen lässt und hast du keine ahnung was ein proxy ist oder willst du nur beides nicht durchführen?
    oder sagt dir curl nichts? du musst konkretisieren was das problem ist.
    andernfalls kannst du natürlich auch ganz konkret schreiben was du haben willst, dann bekommst du von mir das fertige produkt - gegen übliche stundenvergütung.
  • Atalantia schrieb:

    Ich wäre froh wenn Du das Augenmerk mehr auf den Inhalt und weniger auf die Form legen würdest und dafür die Tippenergie vielleicht in ein wenig Ausführlichkeit investieren könntest. Bereits beim letzten Beitrag haben mir Deine Antworten rein nichts weitergeholfen.


    Dein Post passt zu Deiner Signatur.
  • blub.txt schrieb:

    gritsch schrieb:


    hat man einen proxy installiert gehts damit natürlich auch ;)


    Wobei ein Proxy dafür zu installieren ist ein wenig overpowered.

    LiveHTTPHeaders für Firefox oder das entsprechende Pendant für Safari sollte für diesen Fall ausreichen.


    es war ja nur eine option.
    ich hab zb Charles in den apps liegen.
    das starte ich und schon sehe ich was ich sehen will. egal von welchem device (iPad, iPhone, Laptop, oder eben localhost).
  • Ich möchte eigentlich nur noch fragen ob jemand hier gewillt ist mir zu helfen, das Script zu schreiben. Ist nicht viel. Die Seite hat nur zwei Textfelder und einen Button. Mit den Informationen die hier stehen kann ich nix anfangen. Die welche etwas damit anfangen können. können das Problem auch selber lösen, die für welche das Problem Neuland ist, können mit diesen Informationen nichts anfangen.

    PS: Ich hab mal den Quellcode der Seite kopiert:

    <html>

    <head>
    <meta http-equiv="Content-Language" content="en-us">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>$</title>
    <style>
    <!--
    p.MsoNormal
    {mso-style-parent:"";
    margin-bottom:.0001pt;
    font-size:11.0pt;
    font-family:"Calibri","sans-serif";
    margin-left:0in; margin-right:0in; margin-top:0in}
    -->
    </style>
    </head>

    <body bottommargin="2">

    <form name="sendin" method="post" action="http://192.168.1.1/login">
    <input type="hidden" name="username">
    <input type="hidden" name="password">
    <input type="hidden" name="dst" value="">
    <input type="hidden" name="popup" value="true">
    </form>

    <script type="text/javascript" src="/md5.js"></script>
    <script type="text/javascript">
    <!--
    function doLogin() {
    document.sendin.username.value = document.login.username.value;
    document.sendin.password.value = hexMD5('\171' + document.login.password.value + '\125\335\147\120\055\277\123\011\117\231\362\015\116\141\175\101');
    document.sendin.submit();
    return false;
    }
    //-->
    </script>

    <div id="space" style="width: 1px; height: 50%; float: left; margin-bottom: -437px">
    <br>
    </div>
    <div id="container" style="width: 994px; height: 875px; position: relative; clear: left; margin: 0 auto">
    <div id="wb_Image1" style="position: absolute; left: 0px; top: 19px; width: 995px; height: 55px; z-index: 0">
    <div align="center"><strong><span style="font-size: 14pt; font-family: Calibri,sans-serif; color: #1F497D">
    <img border="0" src="images/AseanaHotel.jpg" width="454" height="168"></span></strong></div>
    </div>
    <div id="wb_Text1" style="position: absolute; left: 13px; top: 420px; width: 995px; height: 226px; text-align: center; z-index: 1; border: 0px solid #000000; padding: 0; background-color: transparent">
    </div>
    <p style="font-family: Calibri, sans-serif; font-size: 14pt; color: #1F497D">&nbsp;</p>
    </div>
    <form name="login" method="post" onSubmit="return doLogin()" action="http://192.168.1.1/login">
    <p>
    <input type="hidden" name="dst" value="">
    <input type="hidden" name="popup" value="true">
    </p>
    <div id="wb_Text2" style="position: absolute; left: 295px; top: 189px; width: 420px; height: 22px; z-index: 2; border: 0px solid #000000; padding: 0; background-color: transparent">
    <div align="center"><strong>
    <span style="font-family: &quot;Times New Roman&quot;;"><font size="6"><em>Please Login here</em></font></span></strong>
    </div>
    <p>&nbsp;</p></div>
    <div id="wb_Text3" style="position: absolute; left: 388px; top: 268px; width: 88px; height: 18px; z-index: 3; border: 0px solid #000000; padding: 0; background-color: transparent">
    <em><strong><span style="font-family: Arial; font-size: 15px">U</span></strong><span style="color: #000000; font-family: Arial; font-size: 15px"><strong>sername :</strong></span></em></div>
    <div id="wb_Text4" style="position: absolute; left: 388px; top: 305px; width: 88px; height: 18px; z-index: 4; border: 0px solid #000000; padding: 0; background-color: transparent">
    <em><strong><span style="font-family: Arial; font-size: 15px">P</span></strong><span style="color: #000000; font-family: Arial; font-size: 15px"><strong>assword :</strong></span></em></div>
    <input type="text" id="Editbox1" style="position: absolute; left: 475px; top: 267px; width: 157px; height: 19px; line-height: 19px; z-index: 5; color: #000000; font-family: Arial; font-size: 13px; text-align: left; vertical-align: middle; -moz-box-shadow: 0px 0px 3px #000000; -webkit-box-shadow: 0px 0px 3px #000000; box-shadow: 0px 0px 3px #000000; border: 1px solid #C0C0C0; background-color: #FFFFFF" name="username" value="" autocomplete="off">
    <input type="password" id="Editbox2" style="position: absolute; left: 474px; top: 304px; width: 157px; height: 19px; line-height: 19px; z-index: 6; color: #000000; font-family: Arial; font-size: 13px; text-align: left; vertical-align: middle; -moz-box-shadow: 0px 0px 3px #000000; -webkit-box-shadow: 0px 0px 3px #000000; box-shadow: 0px 0px 3px #000000; border: 1px solid #C0C0C0; background-color: #FFFFFF" name="password" autocomplete="off">
    <input type="submit" id="Button1" name value="Login" style="position: absolute; left: 499px; top: 336px; width: 88px; height: 37px; z-index: 7; color: #000000; font-family: Arial; font-size: 13px">
    </form>
    </div>

    <script type="text/javascript">
    <!--
    document.login.username.focus();
    //-->
    </script>

    </body>

    </html>
    Die Sprache ist die Wurzel des Missverständnisses.

    var firstName = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
    firstName = firstName.stringByReplacingOccurrencesOfString("i", withString: "udu")

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Atalantia ()

  • Atalantia schrieb:

    Ich möchte eigentlich nur noch fragen ob jemand hier gewillt ist mir zu helfen, das Script zu schreiben. Ist nicht viel. Die Seite hat nur zwei Textfelder und einen Button. Mit den Informationen die hier stehen kann ich nix anfangen. Die welche etwas damit anfangen können. können das Problem auch selber lösen, die für welche das Problem Neuland ist, können mit diesen Informationen nichts anfangen.


    öm... sorry, aber dann solltest du keine scripte schreiben die irgendwas mit passwort, router oder sonstwas zu tun haben.
  • Öffne mal in Safari Entwickler* | Seitenressourcen einblenden. Da sollten auch alle Parameter drinstehen, die an die Safari an den Server gesendet hat. Automatische Weiterleitungen oder Javascript-Anfragen funktionieren meines Wissens allerdings nicht damit.

    * Ggf. über Einstellungen -> Erweitert aktivieren. ;)
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Öffne mal in Safari Entwickler* | Seitenressourcen einblenden. Da sollten auch alle Parameter drinstehen, die an die Safari an den Server gesendet hat. Automatische Weiterleitungen oder Javascript-Anfragen funktionieren meines Wissens allerdings nicht damit.

    * Ggf. über Einstellungen -> Erweitert aktivieren. ;)


    Hmm... ich vermute die Seite macht das Login über Javascript, bin aber nicht sicher. Ich habe weiter oben noch den Resource text der Seite eingefügt.
    Die Sprache ist die Wurzel des Missverständnisses.

    var firstName = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
    firstName = firstName.stringByReplacingOccurrencesOfString("i", withString: "udu")
  • Atalantia schrieb:

    macmoonshine schrieb:

    Öffne mal in Safari Entwickler* | Seitenressourcen einblenden. Da sollten auch alle Parameter drinstehen, die an die Safari an den Server gesendet hat. Automatische Weiterleitungen oder Javascript-Anfragen funktionieren meines Wissens allerdings nicht damit.

    * Ggf. über Einstellungen -> Erweitert aktivieren. ;)


    Hmm... ich vermute die Seite macht das Login über Javascript, bin aber nicht sicher. Ich habe weiter oben noch den Resource text der Seite eingefügt.


    dort steht im prinzip ja alles:
    die url an die die daten geschickt werden: 192.168.1.1/login
    die methode mit der die daten geschickt werden: POST
    und die daten die geschickt werden: input fields
    und wie die daten geschickt werden: passwort zb als gesalzener MD5-hash in hex representation.
  • Ok, das müsste dieser Block sein:
    <form name="sendin" method="post" action="http://192.168.1.1/login"><input type="hidden" name="username"><input type="hidden" name="password"><input type="hidden" name="dst" value=""><input type="hidden" name="popup" value="true"></form><script type="text/javascript" src="/md5.js"></script><script type="text/javascript"><!--function doLogin() {document.sendin.username.value = document.login.username.value;document.sendin.password.value = hexMD5('\171' + document.login.password.value + '\125\335\147\120\055\277\123\011\117\231\362\015\116\141\175\101');document.sendin.submit();return false;

    Nun, wie mach ich daraus ein Script das die benötigten Daten sendet? Applescript? bash? Merkwürdigerweise steht da: <input type="hidden" name="username">
    Aber der Username wird nicht hidden angezeigt, man kann ihn lesen.
    Mit UNIX Commands bin ich echt überfordert, aber wenn mir mal jemand etwas zeigen würde, käme ich vielleicht auch etwas weiter.
    Die Sprache ist die Wurzel des Missverständnisses.

    var firstName = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
    firstName = firstName.stringByReplacingOccurrencesOfString("i", withString: "udu")
  • es gibt ja auch 2 forms. einmal das sichtbare in das du die daten füllst, und dann das unsichtbare das zum absenden verwendet wird.

    du musst dir die daten also mal zusammensuchen die du brauchst (das passwort das gesendet werden soll) etc.

    und dann musst du curl damit füttern (man curl).

    AppleScript kann ich dir nicht helfen, keine ahnung ob es damit ginge...
  • Ich muss hier leider die weisse Flagge schwenken, ich gebe das Problem als nicht lösbar für mich auf. Aber danke trotzdem.
    Die Sprache ist die Wurzel des Missverständnisses.

    var firstName = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
    firstName = firstName.stringByReplacingOccurrencesOfString("i", withString: "udu")
  • Naja... wenn schon Browser scripten dann so:

    repeat

    try

    do shell script "ping -o -t 3 -q xxx.xxx.xxx.xx"

    delay 20

    on error

    delay 30

    tell application "Safari"

    activate

    delay 3

    set the URL of front document to "http://192.168.1.1/login?"

    delay 2

    tell document 1

    do JavaScript "document.getElementById('Button1').click();"

    end tell

    if application "VLC" is running then

    tell application "System Events"

    set visible of process "Safari" to false

    end tell

    end if

    end tell

    end try

    end repeat


    Die Sprache ist die Wurzel des Missverständnisses.

    var firstName = "Fischers Fritz fischt frische Fische, frische Fische fischt Fischers Fritz"
    firstName = firstName.stringByReplacingOccurrencesOfString("i", withString: "udu")