2016-04-23 8 views
0

Welches ist das genaue String-Format, das Wireshark verwendet, um die vom Benutzer eingegebenen Werte in einer HTTP-POST-Methode (ein Login-Formular mit Benutzername, Passwort zum Beispiel) zu "schnüffeln"?Wie erhält Wireshark alle Informationen von einer HTTP-Post-Methode? (string-format)

Um genauer zu sein, war ich neugierig, was ist das HTTP-Header-Feld, das erlaubt, weil in der Ausgabe von Wireshark, Header-Feldname fehlt (Ich kann alle anderen sehen - wie User-Agent, Content- Typ, Inhaltslänge und so weiter).

Ich habe mich gefragt, weil ich ein httpry Benutzer bin und ich war neugierig, ob es eine Möglichkeit gibt 'den Mann in der Mitte zu schneiden' (Meine .dump Dateien, die mit httpry erstellt wurden, können in Wireshark geöffnet werden und ich kann alle Informationen bekommen Ich brauche von dort - nach dem Anwenden der Filter natürlich).

Versteht mich nicht falsch, ich weiß, dass Wireshark ein viel komplexerer Mechanismus als httpry ist, aber ich bin nur neugierig, wie Wireshark die gewünschte Ausgabe mit der .dump von httpry geben kann und ob ich das Ergebnis bekommen kann in hexazezimal) in httpry.

Vielen Dank für Ihre Geduld und ich hoffe, dass ich mich klar gemacht habe.

Antwort

0

Sie sprechen von einem HTML form. Wenn das Formular mit einer POST-Anfrage gesendet wird, dann the "form data set" is sent as the message, was bedeutet, dass es im Hauptteil der POST-Anfrage ist.

Das bedeutet, dass Content-Type und Content-Length die relevanten Header sind; Content-Type gibt das für die Daten verwendete Format an, und Content-Length gibt die Anzahl der Datenbytes in diesem Format an. Die Formulardaten sind nicht in einer Kopfzeile.

Sie müssen also die Anforderungszeile analysieren, um festzustellen, dass es ein POST ist, und dann die folgenden Zeilen analysieren, nach Content-Type und Content-Length (und möglicherweise einige Kodierungsheader), bis Sie sehen eine leere Zeile. Die Leerzeile ist das Ende der Kopfzeilen; was folgt, ist der Körper der Anfrage. Das müssen Sie als Formulardaten verarbeiten. Wenn es ein Inhaltslängenfeld gibt, parse genau so viele Bytes des Körpers; Andernfalls wird bis zu einem TCP-FIN (Ende des Datenstroms) analysiert. Wenn Chunked oder komprimierte Codierung verwendet wird, müssen Sie damit umgehen.