Hallo, ich möchte mit wget eine Website zu mir lokal herunterladen. Diese Seite erfordert einen Login. Die Webseite wird (wenn ich das richtig sehe) von einem CMS verwaltet. Die URLs sehen in etwa so aus: <url>/index.php?id=<id> Leider gelingt es mir nicht, über die Login-Seite hinaus zu kommen. Wie muss ich die Login-Informationen angeben? Ich habe es mit folgendem wget-Aufruf probiert: wget -k -E <url>/index.php?id=74&user=<username>&pass=<password> wobei die id=74 eine Seite hinter der Login-Seite ist. Die Seite die heruntergeladen wird, ist aber immer die Login-Seite. Wie kann ich die überspringen? Vielen Dank, Ralf.
Ralf Schneider
Hallo,
ich möchte mit wget eine Website zu mir lokal herunterladen. Diese Seite erfordert einen Login. Die Webseite wird (wenn ich das richtig sehe) von einem CMS verwaltet. Die URLs sehen in etwa so aus: [...] Ich habe es mit folgendem wget-Aufruf probiert:
wget -k -E <url>/index.php?id=74&user=<username>&pass=<password> [...]
Versuche es mal mit curl(1) statt wget -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8EF7B6C6
Am Dienstag, 16. August 2005 18:10 schrieb Dieter Kluenter:
Ich habe es mit folgendem wget-Aufruf probiert:
wget -k -E <url>/index.php?id=74&user=<username>&pass=<password>
Versuche es mal mit curl(1) statt wget
Mein Problem ist glaub ich nicht das verwendete Tool, sondern dass ich nicht weiss, was ich wie übergeben muss. Ich habe jetzt auch verschiedene Aufrufe von curl probiert, kriege aber immer nur die Login-Seite. Folgendes habe ich probiert: curl -b cookies.txt -c cookies.txt -F "user=<username>" -F "password=<password>" <url>/index.php?id=74 Hat aber bisher nicht zum Erfolg geführt. Die alles entscheidende Frage ist also: Wie kann ich mich erfolgreich einloggen und danach die Seiten runterladen? Viele Grüße, Ralf.
Am Dienstag, 16. August 2005 18:49 schrieb Ralf Schneider:
Am Dienstag, 16. August 2005 18:10 schrieb Dieter Kluenter:
Ich habe es mit folgendem wget-Aufruf probiert:
wget -k -E <url>/index.php?id=74&user=<username>&pass=<password>
Versuche es mal mit curl(1) statt wget
Mein Problem ist glaub ich nicht das verwendete Tool, sondern dass ich nicht weiss, was ich wie übergeben muss. Ich habe jetzt auch verschiedene Aufrufe von curl probiert, kriege aber immer nur die Login-Seite. Folgendes habe ich probiert:
curl -b cookies.txt -c cookies.txt -F "user=<username>" -F "password=<password>" <url>/index.php?id=74
Hat aber bisher nicht zum Erfolg geführt.
Die alles entscheidende Frage ist also: Wie kann ich mich erfolgreich einloggen und danach die Seiten runterladen?
Wenn GET nicht funktioniert, dann versuch es mittels POST. Die meisten Logins werden über die letztere Methode durchgeführt, da dort die Sicherheit etwas höher ist (man sieht die übergebenen Daten nicht direkt). Gruß Udo
Am Dienstag, 16. August 2005 19:03 schrieb Udo Neist: [...]
Wenn GET nicht funktioniert, dann versuch es mittels POST. Die meisten Logins werden über die letztere Methode durchgeführt, da dort die Sicherheit etwas höher ist (man sieht die übergebenen Daten nicht direkt).
Ich habe curl mal auf mein Portal losgelassen und die benutzerspezifische Seite wurde korrekt übermittelt. curl -b cookies.txt -c cookies.txt -d 'pbw_password=XXX&pbw_username=XXX&action=dologin&' http://www.singollo.de/index.php?show=dologin Gruß Udo
Ralf Schneider
Am Dienstag, 16. August 2005 18:10 schrieb Dieter Kluenter:
Ich habe es mit folgendem wget-Aufruf probiert:
wget -k -E <url>/index.php?id=74&user=<username>&pass=<password>
Versuche es mal mit curl(1) statt wget
Mein Problem ist glaub ich nicht das verwendete Tool, sondern dass ich nicht weiss, was ich wie übergeben muss. Ich habe jetzt auch verschiedene Aufrufe von curl probiert, kriege aber immer nur die Login-Seite. Folgendes habe ich probiert:
curl -b cookies.txt -c cookies.txt -F "user=<username>" -F "password=<password>" <url>/index.php?id=74
Hat aber bisher nicht zum Erfolg geführt.
Die alles entscheidende Frage ist also: Wie kann ich mich erfolgreich einloggen und danach die Seiten runterladen?
Ein Versuch wäre noch --anyauth und --data aber ich vermute, dass auch dies fehlschlägt. Das Problem wird sein, dass weder curl noch wget PHP können, sondern nur HTML, ich kenne aber auch kein Tool, das PHP parsen kann. Die einzige Lösung wäre vielleicht, wenn du nur den absoluten Pfad auf die Datei angibst, jetzt ungetestet curl --anyauth -G --data @index.php?id=74 --trace - <URL>/pfad -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8EF7B6C6
Am Dienstag, 16. August 2005 19:54 schrieb Dieter Kluenter:
Ein Versuch wäre noch --anyauth und --data aber ich vermute, dass auch dies fehlschlägt. Das Problem wird sein, dass weder curl noch wget PHP können, sondern nur HTML, ich kenne aber auch kein Tool, das PHP
Ich wüsste auch nicht, dass mein Browser PHP kann :-) Das, was per HTTP geschickt wird, ist doch immer HTML. Wenn ich mir den Code der Login-Seite ansehe ist das schönstes "HTML 4.0 Transitional".
parsen kann. Die einzige Lösung wäre vielleicht, wenn du nur den absoluten Pfad auf die Datei angibst, jetzt ungetestet
curl --anyauth -G --data @index.php?id=74 --trace - <URL>/pfad
Nee, funktioniert nicht. Da kriege ich einfach die Startseite der Homapge. Kann es daran liegen, dass bei der HTML-Form folgender onSubmit-Handler angegeben ist: onsubmit="return validateForm('c5e720063431ae9415779e7291193703', 'user,Username%3A,pass,Password%3A','','','')" Sieht so aus, als würden die Eingaben in der Form per JavaScript validiert. Könnte das das Problem sein? Viele Grüße, Ralf.
Hallo,
Ralf Schneider
Am Dienstag, 16. August 2005 19:54 schrieb Dieter Kluenter:
Ein Versuch wäre noch --anyauth und --data aber ich vermute, dass auch dies fehlschlägt. Das Problem wird sein, dass weder curl noch wget PHP können, sondern nur HTML, ich kenne aber auch kein Tool, das PHP
Ich wüsste auch nicht, dass mein Browser PHP kann :-) Das, was per HTTP geschickt wird, ist doch immer HTML. Wenn ich mir den Code der Login-Seite ansehe ist das schönstes "HTML 4.0 Transitional".
Klar, aus dem php script wird ja auch erst zur Laufzeit HTML erzeugt, das ist ja auch die Crux bei dir.
Kann es daran liegen, dass bei der HTML-Form folgender onSubmit-Handler angegeben ist:
onsubmit="return validateForm('c5e720063431ae9415779e7291193703', 'user,Username%3A,pass,Password%3A','','','')"
Sieht so aus, als würden die Eingaben in der Form per JavaScript validiert. Könnte das das Problem sein?
Das kann ich so nicht beurteilen, aber es ist zu vermuten. -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8EF7B6C6
Am Mittwoch, 17. August 2005 12:37 schrieb Dieter Kluenter:
Kann es daran liegen, dass bei der HTML-Form folgender onSubmit-Handler angegeben ist:
onsubmit="return validateForm('c5e720063431ae9415779e7291193703', 'user,Username%3A,pass,Password%3A','','','')"
Sieht so aus, als würden die Eingaben in der Form per JavaScript validiert. Könnte das das Problem sein?
Oh, das ist mir jetzt ein bisschen peinlich :-) Ich habe ein bisschen in der
curl-users Mailingliste gestöbert und bin in einem Thread über das
Perl-Script findform.pl gestolpert. Und als ich das ausprobiert habe, habe
ich mit erschrecken festgestellt, dass ich die ganze Zeit den falschen Namen
für das Passwort-Feld verwendet habe. Kurz korrigiert und schon läufts, und
zwar mit folgendem Aufruf:
curl -c cookies.txt --anyauth -F "user=<username>" -F "pass=
Ralf Schneider wrote:
Kann es daran liegen, dass bei der HTML-Form folgender onSubmit-Handler angegeben ist:
onsubmit="return validateForm('c5e720063431ae9415779e7291193703', 'user,Username%3A,pass,Password%3A','','','')"
Sieht so aus, als würden die Eingaben in der Form per JavaScript validiert. Könnte das das Problem sein?
Ich vermute eher, dass das erste Feld einen Hashcode enthält, der eine gültige Session anzeigt und bei nicht vorhandensein zu einer Ablehnung führt. Du kannst ja mal versuchen, den Input der Loginseite per Script abzurufen und den Wert des ersten Feldes durch das Script zu bestimmen und in der Antwort zu übernehmen. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply (@) japantest (.) homelinux (.) com
Hallo, versuch doch mal, curl einen Referer mitzugeben (--referer=URL). Wenn das nicht hilft, durchsuch mal die Anmelde-Seite nach hidden-Feldern im Formular. Kann sein, dass Du noch ein paar mehr Daten angeben musst als nur die Seitennummer (id), Benuzter und Passwort. Grüße, Felix
participants (5)
-
Dieter Kluenter
-
Felix Nawroth
-
Ralf Schneider
-
Sandy Drobic
-
Udo Neist