login per POST an einem Webserver von einem CLI-Tool (wget, curl, lynx)
Hallo, man sollte meinen, das ist nicht so schwer. Sitze aber seit Stunden dran. Situation: Webseite liefert Formular im HTML zwecks login auf einen Server. Zwecks Last testen/simulieren will ich das von der Kommandozeile machen, ob mit curl, wget oder lynx ist mir egal. Hier das HTML-Formular: <form method="post" action="http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi" enctype="multipart/form-data"> <table border="0" summary="table"> <tr> <td><center> <b> user name </b> </center></td> <td><input type="text" name="username" size="40" /></td> </tr> <tr> <td><center> <b> password </b> </center></td> <td><input type="password" name="password" size="40" maxlength="40" /></td> </tr> </table> <p /> <input type="submit" name="login" value="login" /></form><p> Mein Versuche mit curl: curl -v -F "username=admin;type=multipart/form-data" -F "password=xxxxxxxxx;type=multipart/form-data" -F "login=login;type=multipart/form-data" http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi Klappt nicht. Ich habe den erfolgreichen login per Webbrowser mal mitgesnifft, die Datei liegt hier: https://hmgubox.helmholtz-muenchen.de:8001/d/abdc4a226a/ Der erfolgreiche login per Browser heiss request_ok_mausdb.cap, der Versuch mit curl request_curl_mausdb.cap Obwohl lt. man curl mit dem Parameter -F curl dazu gebracht wird, als content-type multipart/form-data zu benutzen, und ich das auch bei allen drei Optionen noch einmal explizit dazu schreibe, zeigt der sniff als content-type "Content-Type: application/x-www-form-urlencoded". Keine Ahnung warum. mit wget: wget -v --save-cookies=cookie.txt --keep-session-cookies --post-data 'username=admin&password=xxxxxxxxx&login=login' http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi Klappt auch nicht. Dankbar für jeden Tip. Und ja, ich weiß daß die Passwörter im Klartext im cap file stehen. Das Passwort ist temporär, die Anwendung nicht von außen erreichbar und ein reines Testsystem. Bernd -- Bernd Lentes Systemadministration institute of developmental genetics Gebäude 35.34 - Raum 208 HelmholtzZentrum München bernd.lentes@helmholtz-muenchen.de phone: +49 (0)89 3187 1241 fax: +49 (0)89 3187 2294 Erst wenn man sich auf etwas festlegt kann man Unrecht haben Scott Adams Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Heinrich Bassler, Dr. Alfons Enhsen Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Mon, 13 Feb 2017 19:05, Lentes, Bernd
Hallo,
man sollte meinen, das ist nicht so schwer. Sitze aber seit Stunden dran.
Situation:
Webseite liefert Formular im HTML zwecks login auf einen Server. Zwecks Last testen/simulieren will ich das von der Kommandozeile machen, ob mit curl, wget oder lynx ist mir egal.
Hier das HTML-Formular:
<form method="post" action="http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi" enctype="multipart/form-data"> [snip] <td><input type="text" name="username" size="40" /></td> [snip] <td><input type="password" name="password" size="40" maxlength="40" /></td> [snip] <input type="submit" name="login" value="login" /></form><p>
Mein Versuche mit curl:
curl -v -F "username=admin;type=multipart/form-data" -F "password=xxxxxxxxx;type=multipart/form-data" -F "login=login;type=multipart/form-data" http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi
Klappt nicht.
Ich habe den erfolgreichen login per Webbrowser mal mitgesnifft, die Datei liegt hier: https://hmgubox.helmholtz-muenchen.de:8001/d/abdc4a226a/ Der erfolgreiche login per Browser heiss request_ok_mausdb.cap, der Versuch mit curl request_curl_mausdb.cap Obwohl lt. man curl mit dem Parameter -F curl dazu gebracht wird, als content-type multipart/form-data zu benutzen, und ich das auch bei allen drei Optionen noch einmal explizit dazu schreibe, zeigt der sniff als content-type "Content-Type: application/x-www-form-urlencoded". Keine Ahnung warum.
mit wget:
wget -v --save-cookies=cookie.txt --keep-session-cookies --post-data 'username=admin&password=xxxxxxxxx&login=login' http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi
Klappt auch nicht.
Dankbar für jeden Tip. Und ja, ich weiß daß die Passwörter im Klartext im cap file stehen. Das Passwort ist temporär, die Anwendung nicht von außen erreichbar und ein reines Testsystem.
Uh??
1. das versagen von curl macht mich stutzig.
2. ob das "login=login" wirklich nötig ist kann ich nicht sagen
3. Für w3m oder lynx syntax folgt:
Funkt eins von denen hier? (man bash "Here Documents")
[code]
w3m -post - http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi <
On Mon, 13 Feb 2017 19:05, Lentes, Bernd
wrote: Uh?? 1. das versagen von curl macht mich stutzig. 2. ob das "login=login" wirklich nötig ist kann ich nicht sagen 3. Für w3m oder lynx syntax folgt: Funkt eins von denen hier? (man bash "Here Documents")
[code] w3m -post - http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi <
Lynx will ein "---" als ende der Eingabe! [code] lynx http://10.35.23.51/cgi-bin/mausdb/mausdb.cgi -post_data <
- Yamaban
Hallo, hab's rausbekommen. Ich bin kein Entwickler von Webapplikationen, deswegen hat's etwas gedauert. Da werden session cookies benutzt. Wenn man sich den request des Browsers anschaut, sieht man daß er ein cookie hochlädt. Das bekommt er anscheinend vorher beim erstmaligen Aufruf der Seite. Rufe ich die Seite erstmalig auf, kann ich mit -c das Cookie speichern und dem anschließenden POST-Request mit -b mitgeben. Dann klappt's. :-)) Bernd Helmholtz Zentrum Muenchen Deutsches Forschungszentrum fuer Gesundheit und Umwelt (GmbH) Ingolstaedter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir'in Baerbel Brumme-Bothe Geschaeftsfuehrer: Prof. Dr. Guenther Wess, Heinrich Bassler, Dr. Alfons Enhsen Registergericht: Amtsgericht Muenchen HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (2)
-
Lentes, Bernd
-
Yamaban