der.markus
Anmeldungsdatum: 19. September 2010
Beiträge: 5
|
Hallo zusammen, Ich habe in einem kleinen Multimediasystem (Telekom S100) Debian in einer minimal-Ausführung (also ohne graphische Oberfläche) installiert und lasse darauf ein schlankes Mediacenter laufen.
Soweit funktioniert das auch prächtig, nur würde ich nun gerne auch Internet darauf haben. Dieses bekomme ich hier (in einem Studentenwohnheim) via Kabel, wobei ich mich bei jedem Systemstart erst einmal auf einer "https://"-Seite mit meinen Login-Daten anmelden muss.
Ich würde das gerne als Bash-Skript realisieren, was auch eigentlich keine große Sache sein sollte, nur leider habe ich da schon alles Mögliche ausprobiert und das Internet schon des öfteren durchforstet, leider ohne Erfolg. (Ich benutze zwar schon ein gutes Jahr Ubuntu, jedoch leider bisher nur sehr oberflächlich) Es wäre echt super lieb von euch, wenn ihr mir da aus der Patsche helfen könntet, weil so ein Media-PC ohne Internet macht ja nicht wirklich Spaß. Also schonmal vielen Dank im Vorraus! Damit ihr seht, dass ich auch schon selbst tätig war hier mein momentanes Skript 😉 : curl -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" \
--cookie cjar --cookie-jar cjar \
--data "username=mein_benutzername" \
--data "password=mein_passwort" \
--data "Login=Login" \
--location "https://loginwebsite">/tmp/tmp.html Die entsprechenden Zeilen aus dem Seitenquelltext habe ich hier nochmal rausgeschrieben: - Die Benutzernamen-Textbox: <td valign="top"><input type="text" name="username"></td> - Die Passwort-Textbox: <td valign="top"><input type="password" name="password"></td> - Und die beiden Buttons: <td><input type="submit" name="action" value="Login" size="50"><br></td>
<td><input type="submit" name="action" value="Logout" width="500"></td> Ach ja: Das Programm liefert folgenden Output in der Konsole, wenn ich es ausführe:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4200 0 4154 100 46 15231 168 --:--:-- --:--:-- --:--:-- 15442
Bearbeitet von tomtomtom: Codeblöcke eingefügt. Bitte nutze die Forensyntax. Ubuntu aus Versionsauswahl entfernt.
|
DiBo33
Anmeldungsdatum: 16. Juni 2006
Beiträge: 1827
|
Als erstes was mir auffällt --data "Login=Login" \
<input type="submit" name="action" value="Login" size="50">
|
der.markus
(Themenstarter)
Anmeldungsdatum: 19. September 2010
Beiträge: 5
|
Oh ja, klar, das scheint einem meiner verzweifelten Versuche zum Opfer gefallen zu sein. Hab das gerade geändert und nochmal ausgeführt; funktioniert leider noch immer nicht ☹ Eine Sache ist mir gerade noch aufgefallen: Momentan probiere ich das Skript noch auf meinem Ubuntu-Rechner (64-Bit) aus. Am Anfang des Programms steht ja "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)". Kann das damit zusammenhängen?
|
stfischr
Anmeldungsdatum: 1. März 2007
Beiträge: 19197
|
Hi. Schau doch mal mit Live HTTP Headers (oder ähnlichem), was da so alles gesendet wird. vielleicht kann diese curl auch kein https? dann probiers mal mit wget. der.markus schrieb: Am Anfang des Programms steht ja "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)". Kann das damit zusammenhängen?
Nein, das sollte selbst mit "Mozilla/4.73 Hans Wurst" (oder jedem beliebigen String) funktionieren
|
henry-06
Anmeldungsdatum: 16. Juni 2009
Beiträge: 22
|
Hallo Markus, ich hab derzeit ähnliche Probleme mit curl, aber ob live http headers weiterhilft, weiß ich nicht. Ich würde mir auf jeden Fall mal Wireshark anschauen, ich benutze das tool auch und es ist erste Sahne. Dürfte es auch für debian geben. Mit Wireshark kannst Du Deinen kompletten Netzwerkverkehr anschauen und überprüfen: (1) Was curl sendet und für eine Antwort vom Server erhält (2) Was der normale Browser für eine Anfrage schickt und die mit der curl Anfrage vergleichen. Wenn Du das gemacht hast, und dennoch nicht weiterweißt, kannst Du ja die jeweiligen Mitschnitte von Wireshark hier mal zeigen. mfg henry
|
stfischr
Anmeldungsdatum: 1. März 2007
Beiträge: 19197
|
henry-06 schrieb: Mit Wireshark kannst Du Deinen kompletten Netzwerkverkehr anschauen und überprüfen:
Ja das ist sinnvoller als live Headers, welches nur den zweiten Fall abdeckt
Wenn Du das gemacht hast, und dennoch nicht weiterweißt, kannst Du ja die jeweiligen Mitschnitte von Wireshark hier mal zeigen.
Schau sie vorher gründlich durch, da stehen diverse Passwörter, Namen und Adressen drin.
|
henry-06
Anmeldungsdatum: 16. Juni 2009
Beiträge: 22
|
stfischr schrieb: Schau sie vorher gründlich durch, da stehen diverse Passwörter, Namen und Adressen drin.
Stimmt, dass sollte man überprüfen und nicht wahllos veröffentlichen. Hätte ich selber schon anmerken sollen. Allerdings sollten bei https ja eigentlich keine Passwörter sichtbar sein, deswegen heißt das ja https. 😉 mfg henry
|
stfischr
Anmeldungsdatum: 1. März 2007
Beiträge: 19197
|
henry-06 schrieb: Allerdings sollten bei https ja eigentlich keine Passwörter sichtbar sein, deswegen heißt das ja https. 😉
stimmt, allerdings ist damit die komplette Ausgabe nutzlos, weil alle Daten verschlüsselt sind, soweit hatte ich garnicht gedacht. also ist live headers garnicht so verkehrt
|
henry-06
Anmeldungsdatum: 16. Juni 2009
Beiträge: 22
|
Hm, wirklich die komplette ausgabe und nicht nur die einzelnen passwörter bzw. benutzernamen? Kenn mich mit https nicht so genau aus. Und probiert hab ich das auch noch nie. mfg henry
|
der.markus
(Themenstarter)
Anmeldungsdatum: 19. September 2010
Beiträge: 5
|
Wow, ich bin begeistert, schon so viele Menschen die helfen! ☺ Also mit live-http-headers habe ich für die Amneldung folgende Ausgabe bekommen:
https://login.rz.ruhr-uni-bochum.de/cgi-bin/laklogin
POST /cgi-bin/laklogin HTTP/1.1
Host: login.rz.ruhr-uni-bochum.de
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20100101 Firefox/6.0
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
Connection: keep-alive
Referer: https://login.rz.ruhr-uni-bochum.de/cgi-bin/start
Cookie: __utma=164249276.726999188.1305800394.1305800394.1309252894.2; __utmz=164249276.1309252894.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=ruhr%20uni%20bochum%20pr%C3%A4sentationsfolien
Content-Type: application/x-www-form-urlencoded
Content-Length: 54
code=1&username='''******'''&password='''******'''&action=Login
HTTP/1.1 200 OK
Date: Sun, 21 Aug 2011 11:29:44 GMT
Server: Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8o
Content-Length: 740
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/html
Soweit ich das verstehe ist ja der Block "code=1&username=******&password=******&action=Login" genau das, was ich mit dem Skript gemacht habe, oder? Vielleicht mag curl https-Seiten ja wirklich nicht leiden...
|
henry-06
Anmeldungsdatum: 16. Juni 2009
Beiträge: 22
|
der.markus schrieb: Soweit ich das verstehe ist ja der Block "code=1&username=******&password=******&action=Login" genau das, was ich mit dem Skript gemacht habe, oder? Vielleicht mag curl https-Seiten ja wirklich nicht leiden...
Eigentlich nicht. Aber es wär natürlich interessant zu erfahren, was
| wget --post-data 'username=...&password=....'
|
liefert, wobei ich nicht wirklich glaube, dass das funktioniert. Und nach wie vor hielte ich es für sinnvoll, mal wireshark zu installieren und zu schauen, wie der Netzverkehr so aussieht, wenn Du curl oder wget aufrufst. Dann erkennt man auch die unterschiede zw. curl und firefox und kann diese eventuell beseitigen. mfg henry
|
stfischr
Anmeldungsdatum: 1. März 2007
Beiträge: 19197
|
henry-06 schrieb: Und nach wie vor hielte ich es für sinnvoll, mal wireshark zu installieren und zu schauen, wie der Netzverkehr so aussieht, wenn Du curl oder wget aufrufst.
Ich weiß wie das aussieht 😛 HTTPS, TLS, SSL, AUTH, SYNC, ACK und häufiger mal ein ominöses Feld namens "encrypted data"
Dann erkennt man auch die unterschiede zw. curl und firefox und kann diese eventuell beseitigen.
Da kann man eigentlich nur sehen ob die Verbindung oder die Authentifizierung fehlschlägt. richtigen Cookie holen
Probiere mal folgendes mit wget: wget --save-cookies unilogin.cookie https://login.rz.ruhr-uni-bochum.de/cgi-bin/start sieht die erstellt Datei (unilogin.cookie) so ähnlich aus wie __utma=164249276.726999188.1305800394.1305800394.1309252894.2; __utmz=164249276.1309252894.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=ruhr%20uni%20bochum%20pr%C3%A4sentationsfolien ? Dann gehts unter auth weiter ... Edit: 2. Cookieversion: wget --save-cookies unilogin.cookie \
-U "Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20100101 Firefox/6.0" \
--header='Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
--header='Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' \
--header='Accept-Encoding: gzip, deflate' \
--header='Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' \
--header='Content-Type: application/x-www-form-urlencoded' \
--no-check-certificate \
https://login.rz.ruhr-uni-bochum.de/cgi-bin/start eventuell auch mal den 'Content-Type' weglassen auth
Achte darauf, dass ****** keine Sonderzeichen oder Leerzeichen enthalten darf, diese musst du mit %20 (etc) escapen wget --post-data="code=1&username=******&password=******&action=Login" \
--load-cookies unilogin.cookie \
-U "Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20100101 Firefox/6.0" \
--header='Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
--header='Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' \
--header='Accept-Encoding: gzip, deflate' \
--header='Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' \
--referer="https://login.rz.ruhr-uni-bochum.de/cgi-bin/start" \
--header='Content-Type: application/x-www-form-urlencoded' \
--no-check-certificate \
-p https://login.rz.ruhr-uni-bochum.de/cgi-bin/laklogin So das ist zwar die ganz grobe Stachelkeule, aber wenns so nicht klappt, dann liegts am Cookie oder an der Verschlüsselung PS: ich finde es echt cool, wie euch eure UNI zum Hacken animiert 😉 PPS: bitte wer mit Ahnung nochmal drüber schauen, ich mach gerne viele Fehler.
|
henry06
Anmeldungsdatum: 19. November 2007
Beiträge: 51
|
stfischr schrieb: henry-06 schrieb: Und nach wie vor hielte ich es für sinnvoll, mal wireshark zu installieren und zu schauen, wie der Netzverkehr so aussieht, wenn Du curl oder wget aufrufst.
Ich weiß wie das aussieht 😛 HTTPS, TLS, SSL, AUTH, SYNC, ACK und häufiger mal ein ominöses Feld namens "encrypted data"
Stimmt, hab grad mal mein gmx einloggen mitgeschnitten. Hab ich wohl mist erzählt... Sorry 😳 mfg henry
|
der.markus
(Themenstarter)
Anmeldungsdatum: 19. September 2010
Beiträge: 5
|
Ich glaub es nich! Ihr seid spitze 😀 Es funktioniert alles wie's soll! Also in dieser Version:
wget --save-cookies unilogin.cookie https://login.rz.ruhr-uni-bochum.de/cgi-bin/start
und
wget --post-data="code=1&username=******&password=******&action=Login" \
--load-cookies unilogin.cookie \
-U "Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20100101 Firefox/6.0" \
--header='Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
--header='Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' \
--header='Accept-Encoding: gzip, deflate' \
--header='Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' \
--referer="https://login.rz.ruhr-uni-bochum.de/cgi-bin/start" \
--header='Content-Type: application/x-www-form-urlencoded' \
--no-check-certificate \
-p https://login.rz.ruhr-uni-bochum.de/cgi-bin/laklogin
hat's super geklappt. Vielen Dank dafür ☺ PS.: Ja da soll nochmal jemand sagen, die Uni würde einen nicht auch fachübergreifend fördern und fordern! Edit: Eine Frage hätte ich vielleicht noch um komplett begeistert zu sein: Das ist doch bestimmt möglich, dieses Skript beim Start des Betriebssystems automatisch auszuführen oder? Weiß jemand wie ich das realisieren könnte?
|
henry06
Anmeldungsdatum: 19. November 2007
Beiträge: 51
|
Guckst Du hier: Autostart mfg henry
|