Kann ich tcpdump verwenden, um HTTP-Anfragen, Antwort-Header und Antwort-Körper zu bekommen?

Ich verwende tcpdump , um HTTP-Daten zu erhalten, indem ich den folgenden Befehl ausführe:

 sudo tcpdump -A -s 1492 dst port 80 

Das Ergebnis der oben genannten Befehl:

  1. Header, ich denke, Anforderung und Antwort Header.
  2. Unlesbare Daten.
  3. Die URL GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg .

Ich brauche ein klareres Ergebnis, zum Beispiel lesbare Anfrage> Antwortheader> Antwortkörper etc. Wie kann ich meine Ergebnisse filtern?

  • Cross Compile - tcpdump für x86
  • Gibt es eine Möglichkeit, Android WIFI (Droid Handset) in promiscuous Monitoring-Modus?
  • Überwachen Sie die Netzwerkaktivität in Android-Handys
  • 3 Solutions collect form web for “Kann ich tcpdump verwenden, um HTTP-Anfragen, Antwort-Header und Antwort-Körper zu bekommen?”

    Es gibt tcpdump Filter für HTTP GET & HTTP POST (oder für beide Plus Nachricht Körper):

    • Laufen man tcpdump | less -Ip examples man tcpdump | less -Ip examples für einige Beispiele

    • Hier ist ein tcpdump-Filter für HTTP GET:

       sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' 
    • Hier ist ein tcpdump-Filter für HTTP POST:

       sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' 
    • Überwachen Sie HTTP-Verkehr einschließlich Anforderungs- und Antwort-Header und Nachrichtentext ( Quelle ):

       tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' 

    Weitere Informationen zum Bit-Twiddling im TCP-Header finden Sie unter: String-Matching Capture Filter Generator (Link zur Sake Blok's Erklärung).

    Ich würde empfehlen Wirwark , die eine "Follow TCP Stream" -Option hat, die es sehr einfach macht, die vollständigen Anfragen und Antworten für eine bestimmte TCP-Verbindung zu sehen. Wenn du es vorziehe, die Kommandozeile zu benutzen, kannst du tcpflow versuchen, ein Werkzeug, das sich für die Erfassung und Rekonstruktion des Inhalts von TCP-Streams einsetzt.

    Andere Optionen würden einen HTTP-Debugging-Proxy verwenden, wie Charles oder Fiddler, wie EricLaw vorschlägt. Diese haben den Vorteil, dass sie spezifische Unterstützung für HTTP haben, um es einfacher zu machen, mit verschiedenen Arten von Verschlüsselungen umzugehen, und andere Funktionen wie das Speichern von Anfragen, um sie zu wiederholen oder zu bearbeiten.

    Sie könnten auch ein Tool wie Firebox (Firefox), Web Inspector (Safari, Chrome und andere WebKit-basierte Browser) oder Opera Dragonfly , die alle bieten einige Möglichkeit, um die Anfrage und Antwort-Header und Körper (obwohl die meisten von Sie erlauben es Ihnen nicht, den genauen Byte-Stream zu sehen, sondern stattdessen, wie die Browser die Anfragen analysierten).

    Und schließlich können Sie immer Anfragen von Hand konstruieren, indem Sie etwas wie telnet, netcat oder socat verwenden , um mit Port 80 zu verbinden und geben Sie die Anfrage manuell ein oder ein Tool wie htty , um leicht zu erstellen , um eine Anfrage zu erstellen und die Antwort zu überprüfen.

    Hier ist eine andere Wahl: Chaosreader

    Also muss ich eine Anwendung debuggen, die xml an eine 3rd-Party-Anwendung weitergibt. Ich habe ein brillantes kleines Perl-Skript gefunden, das die ganze harte Arbeit macht – du fassst es einfach eine tcpdump-Ausgabedatei, und das macht alles Manipulation und gibt alles aus, was du brauchst …

    Das Skript heißt chaosreader0.94. Siehe http://www.darknet.org.uk/2007/11/chaosreader-trace-tcpudp-sessions-from-tcpdump/

    Es funktionierte wie ein Leckerbissen, ich habe folgendes gemacht:

     tcpdump host www.blah.com -s 9000 -w outputfile; perl chaosreader0.94 outputfile 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.