#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren