[Code] Bash-Login

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Ravenclaw, 25. November 2009 .

Schlagworte:
  1. 25. November 2009
    Bash-Login

    Moin

    bin neu hier, hoffe aber das mir geholfen werden kann.
    Ich will mit bash und cURL einen Autologin für dieses Browsergame schreiben:
    Antswar - Ameisen Browsergame

    Und da der Login mit Texteingabe.

    Der <form>-Teil sieht da so aus:
    Code:
     <form name="formular" action="" method="post">
    
     <fieldset id="login"><legend>Login ins Spiel</legend>
     <input type="hidden" name="welt" value="endloswelt" />
     <p><label for="username">Benutzername:</label>
     <input id="username" name="username" size="25" value="" /></p>
     <p><label for="password">Passwort:</label>
     <input id="password" name="password" type="password" size="25" /></p>
    
     <p>Damit der Login möglich ist, musst du noch den Sicherheitscode aus dem unteren Bild in das Feld darunter eingeben.</p>
     <p><label for="guess"><img src="img_captcha2.php?key=42b77064998e6d276b821ba9e0073114" alt="Sicherheitscode" title="Sicherheitscode in Feld eingeben" /></label>
     <input id="guess" name="guess" size="7" /></p>
    
     <input name="turing_key" type="hidden" value="42b77064998e6d276b821ba9e0073114" />
    
     <p><input type="submit" name="submit" value="Login" /></p>
    
     <p>Passwort vergessen? <a href="?ak=passvergessen">neues Passwort gibt es hier!</a></p>
     </fieldset>
     </form>


    und mein Bashscript so:
    Code:
    #!/bin/bash
    
    textlogin=`curl http://endloswelt.antswar.eu/?ak=login | grep -n "loginalt" | cut -d '"' -f 2`
    curl http://endloswelt.antswar.eu/$textlogin > login
    captcha=`grep -n 'alt="Sicherheitscode"' login | cut -d '"' -f 4`
    key=`grep -n "turing_key" login | cut -d '"' -f 6`
    feh http://endloswelt.antswar.eu/$captcha &
    echo -n "Captcha eingeben:"
    read captchacode
    killall feh
    curl -c "cookies.txt" -d "welt=endloswelt&username=USER&password=PW&guess=$captchacode&$turing_key=$key&submit=Login" http://endloswelt.antswar.eu/
    
    damit lande ich aber immer bei der Ausgabe, das ich den Kreis (im Standartcaptcha) nicht getroffen habe.

    Hier noch die Ausgabe vom Firefox Http Live Header Plugin:
    Code:
    http://endloswelt.antswar.eu/?ak=loginalt&PHPSESSID=b9dc6624c3cb90000bb6a049654c6dc4
    
    POST /?ak=loginalt&PHPSESSID=b9dc6624c3cb90000bb6a049654c6dc4 HTTP/1.1
    Host: endloswelt.antswar.eu
    User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.1.5) Gecko/20091109 Ubuntu/9.10 (karmic) Firefox/3.5.5
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://endloswelt.antswar.eu/?ak=loginalt&PHPSESSID=b9dc6624c3cb90000bb6a049654c6dc4
    Cookie: __utma=228316621.1414245806.1259158040.1259158040.1259158040.1; __utmb=228316621; __utmc=228316621; __utmz=228316621.1259158040.1.1.utmccn=(referral)|utmcsr=endloswelt.antswar.eu|utmcct=/uebersicht.php|utmcmd=referral; PHPSESSID=ef674576b6e27005f22a899ddd43529b
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 120
    welt=endloswelt&username=USER&password=PW&guess=0H8G&turing_key=9a6ab9e7990489a863099422901b8f22&submit=Login
    HTTP/1.x 200 OK
    Transfer-Encoding: chunked
    X-Powered-By: PHP/5.2.3
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: PHPSESSID=01b0af3e397650db01fc60f63776f7a4; path=/
    Content-Type: text/html
    Date: Wed, 25 Nov 2009 14:07:49 GMT
    Server: lighttpd/1.4.13
    

    Und loggt man sich "von Hand" ein, landet man auf folgender Seite im Spiel:
    Antswar - Ameisen Browsergame

    Ich hoffe, man kann mir hier helfen.

    mfg
    Ravenclaw
     
  2. 25. November 2009
    AW: Bash-Login

    ähm? also woher kommt bei dir denn
    Code:
    welt=endloswelt&username=USER&password=PW&guess=0H8G&turing_key=9a6ab9e7990489a863099422901b8f22&submit=Login
    wenn ich versuche mich einzuloggen kriege ich mit livehttpheaders folgendes
    Code:
    welt=endloswelt&username=&password=&captcha.x=38&captcha.y=6
    edit: streich das, hab grad das "alte" login entdeckt

    edit2: 3 möglichkeiten, an denen es liegen könnte (kannst grad nicht testen, da ich kein un/pw hab):

    a) http://endloswelt.antswar.eu/ müsstest du ändern in http://endloswelt.antswar.eu/?ak=loginalt in der letzten Zeile deines Bash-Scripts, da er sich sonst mit dem "neuen" login versucht einzuloggen. daher wohl auch die meldung ala: die haben den kreis nciht getroffen. wenn du im alten login nämlich das captcha falsch machst steht da was von falscher sicherheitstext oder sowas

    b) textlogin=`curl http://endloswelt.antswar.eu/?ak=login | grep -n "loginalt" | cut -d '"' -f 2`
    da gleich als param für curl schon -c cookies.txt mit dazu

    c) die sessionid mit auslesen aus dem login-file und beim letzten aufruf mit übergeben

    übrigens: -v ist beim curl immer sehr nett, weil der dir dann die header mitpostet, so kannst du direkt vergleichen, zwischen ff und curl
     
  3. 25. November 2009
    AW: Bash-Login

    c) die sessionid mit auslesen aus dem login-file und beim letzten aufruf mit übergeben

    wie bekomme ich die session id? oder lese ich die vorher schon aus, oder habe ich die schon in $textlogin = ?ak=loginalt&PHPSESSID=35b5e1e42b6ba6a9efb649c8a284796d ???

    mfg
     
  4. 26. November 2009
    AW: Bash-Login

    richtig^^ die PHPSESSID
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.