Meine Anwendung sendet HTTP-Anforderungen an einen Server und ich möchte die tatsächlichen Daten sehen, die gesendet werden. Einige Besonderheiten, die ich gerne sehen würde:
- Anforderungsmethode (GET / POST / PUT usw.)
- Inhaltstyp
- Körper
Was ist der beste und einfachste Weg, um dies zu erreichen?
networking
Mega
quelle
quelle
Antworten:
Nun, für all diese tcpdump Fans =)
FÜHREN SIE ALLE DIESEN BEFEHLE ALS WURZEL AUS !!!
Beziehen Sie root in einem Terminal mit
So erfassen Sie die RAW-Pakete ...
Dadurch werden alle Rohpakete an allen Ports und Schnittstellen erfasst und in eine Datei geschrieben
/tmp/http.log
.Führen Sie Ihre Anwendung aus. Es ist natürlich hilfreich, wenn Sie keine anderen Anwendungen ausführen, die HTTP (Webbrowser) verwenden.
Töten
tcpdump
Verwenden Sie zum Lesen des Protokolls das
-A
Flag und leiten Sie die Ausgabe weiter anless
:Das
-A
Flag druckt den "Payload" - oder ASCII-Text in den Paketen aus. Dadurch wird die Ausgabe an gesendetless
. Sie können die Seite nach oben und unten verschieben. Geben Sie zum Beendenless
Folgendes ein Q.Wenn ich zu Google gehe, sehe ich (in den Rohpaketen):
tcpdump
Es stehen zahlreiche Optionen zur Verfügung, mit denen die Datenerfassung von der Angabe der Netzwerkschnittstellen zu den Ports für Quell- und Ziel-IP-Adressen verfeinert werden kann. Es kann NICHT entschlüsselt werden (daher funktioniert es nicht mit HTTPS).Sobald Sie wissen, woran Sie interessiert sind, können Sie eine Reihe von Optionen verwenden
tcpdump
, um nur die Daten von Interesse aufzuzeichnen. Die allgemeine Strategie besteht darin, zuerst alle Pakete aufzuzeichnen, die Rohdaten zu überprüfen und dann nur die interessierenden Pakete zu erfassen.Einige hilfreiche Flags (Optionen):
Es gibt eine Lernkurve zum Verwenden
tcpdump
und Analysieren der von Ihnen gesammelten Daten. Für die weitere Lektüre empfehletcpdump
ich Daniel Miesslers Primer mit Beispielen .quelle
0 packets captured 0 packets received by filter 0 packets dropped by kernel
aber ich habe eine Reihe von Websites im Chrome-Browser geöffnet, als tcpdump überwacht wurde.tcpdump -i any -w /tmp/http.log &
hat funktioniert.Zuerst
tcpflow
von den offiziellen Ubuntu-Repositories installieren :Führen Sie dann diesen Befehl aus, um alle HTTP-Anforderungen am Standardport zu überprüfen:
quelle
Ich würde vorschlagen, dass Sie Wireshark versuchen
Bitte beachten Sie, dass Wireshark ziemlich weit fortgeschritten ist und daher etwas gewöhnungsbedürftig sein kann. Ich habe es ein paar Jahre nicht benutzt, aber es sollte immer noch perfekt für das sein, was Sie suchen - wenn nicht ein bisschen zu voll mit Funktionen.
Informationen zu Wireshark und seiner Verwendung finden Sie auf der Wireshark-Homepage .
quelle
Auch mit Kommando möglich, das auch für SSL eine ordentliche Ausgabe liefert:
quelle