WinSocks - Über HTML-Formular in Board einloggen
-
Hallo,
wie kann ich mich mit Hilfe von Windows Sockets über das HTML-Formular (natürlich mit den entsprechenden Userdaten) in ein Forum einloggen um anschließend den Quelltext eines Posts zu empfangen?
Ich kann zwar ohne Probleme eine normale Seite "anfunken" und mir deren Quelltext zukommen lassen; aber in manchem Foren kann man ja die Beiträge nunmal nur lesen, wenn man angemeldet ist. Stelle ich also die Anfrage mit dem GET-Befehl an eine Seite, die eine Anmeldung erfordert, empfange ich natürlich nur den Quelltext der Seite mit dem Einloggen-Forumular. Wie könnte ich dort die entsprechenden Daten eingeben (ich habe etwas vom "POST-Befehl" gehört!?) und mich anschließend auf die eigentliche Seite umleiten lassen und dann schließlich deren HTML-Code empfangen?
Es wäre sehr nett, wenn ihr mir dabei weiterhelfen würdet

ph4nt0m
-
-
Ich habe mich bereits über den POST-Befehl informiert, aber habe Schwierigkeiten damit, diesen auf mein Problem anzuwenden. Ich kann doch nicht einfach an die Webseite Benutzername und Passwort senden, sondern muss doch bestimmt irgendwie die speziellen Textfelder ausfindig machen!?
Wäre es möglich, mir dies etwas genauer zu erklären? Vielen Dank

Gruß, ph4nt0m
-
Die Namen der Felder stehen doch im HTML-Quellcode drin?
Feldnamen und Werte rauskramen und dann im Format wie als Beispiel im wikipedia-Eintrag angegeben verschicken.Bei firefox vereinfacht einem das z.B. die "Webdeveloper-Extension", mit der man nen POST-Request vor abschicken einfach in nen GET_Request umwandeln kann und dann quasi die Parameter einfach nach dem abschicken aus der URL kopieren kann

-
mit der winInet gehts auch ganz gut.
Guck in der msdn mal nach HttpOpenRequest und dann klick dich bissle durch.
mfg tobZel
-
Danke, ich habe jetzt in den Quelltext geschaut. Allerdings scheint das Passwort irgendwie per MD5 verschlüsselt und anschließend "onsubmit" zugewiesen zu werden. An dieser Stelle steht aber der Benutzername gar nicht dabei.
Eventuell (auch auf die Gefahr hin, dass es dich langsam nervt...) könntest du dir ja den Quelltext unten mal anschauen und mir dann noch einmal sagen, wie ich damit den POST Befehl aufbauen müsste

<form action="login.php" method="post" onsubmit="md5hash(vb_login_password,vb_login_md5password,vb_login_md5password_utf)"> <input type="hidden" name="do" value="login" /> <input type="hidden" name="url" value="/thread/664519" /> <input type="hidden" name="vb_login_md5password" /> <input type="hidden" name="vb_login_md5password_utf" /> <input type="hidden" name="s" value="" /> <fieldset class="fieldset"> <legend>Anmelden</legend> <table cellpadding="0" cellspacing="3" border="0" align="center"> <tr> <td>Benutzername:<br /><input type="text" class="bginput" name="vb_login_username" size="50" accesskey="u" tabindex="1" /></td> </tr> <tr> <td>Kennwort:<br /><input type="password" class="bginput" name="vb_login_password" size="50" accesskey="p" tabindex="1" /></td> </tr> <tr> <td> <span style="float:right"><a href="login.php?do=lostpw">Kennwort vergessen?</a></span> <label for="cb_cookieuser"><input type="checkbox" name="cookieuser" value="1" id="cb_cookieuser" checked="checked" tabindex="1" /> <acronym style="border-bottom: 1px dotted #000000; cursor: help;" title="Du bleibst angemeldet, bis du dich selbst abmeldest.">Angemeldet bleiben?</acronym></label> </td> </tr> <tr> <td align="right"> <input type="submit" class="button" value="Anmelden" accesskey="s" tabindex="1" /> <input type="reset" class="button" value="Felder zurücksetzen" accesskey="r" tabindex="1" /> </td> </tr> </table> </fieldset> </form>Die Namen der Textfelder lauten wohl "vb_login_username" und "vb_login_password". Aber hilft mir das bei dem Post Befehl weiter?

Gruß, ph4nt0m
-
POST /Pfad/Zur/login.php HTTP/1.1 Host: DerHostname Content-Type: application/x-www-form-urlencoded Content-Length: SoLangWieDasDingUntenIs do=login&url=/thread/664519&vb_login_md5password=EinWertVermutlichVonMD5HashBerechnet&vb_login_md5password_utf=AuchSoEinWert&vb_login_username=EinWert&vb_login_password=NochNWert&cookieuser=NenWertDann müsstest du dir vorher noch die vermutl. JavaScript-Funktion md5hash() angucken die noch irgendwo rumlungert, welche vor dem Absenden der Seite ausgeführt würde.
Außerdem müssstest du noch zusehen das du bei weiteren HTTP-Requests evtl. gesetzte Cookies mitsendest.
(...und sollte das ein Spambot werden solltest du dich tötlich vom Blitz treffen lassen
)