Frage Wie man ganze HTTP-Anfragen mit Apache ablegt


Ist es möglich, komplette HTTP-Anfragen per Apache abzulegen? Ich muss alle HTTP-Header von ankommenden Anfragen verfolgen. Wie geht das?


27
2017-08-07 12:03


Ursprung




Antworten:


Ich denke, was Sie anstelle von Apache wollen, könnte ein PaketanalysatorAuch bekannt als Packet Sniffer. Zwei der beliebtesten sind wahrscheinlich TCPDump und WiresharkBeide sind kostenlos und haben Versionen für Windows und * nix Betriebssysteme. Diese zeigen Ihnen den gesamten Verkehr, der über eine Schnittstelle hereinkommt, nicht nur, was Apache sieht. Sie können jedoch Filter verwenden, um auf einen bestimmten Port zu beschränken, z. B. 80 für http.

tcpdump:
Der folgende Befehl, der vom Server ausgeführt wird, zeigt Ihnen alle Pakete an, die für Port 80 bestimmt sind:

sudo tcpdump -s 0 -X 'tcp dst port 80'

Der X-Schalter von capital gibt die Nutzdaten in Hexadezimal und ASCII aus. Der Schalter s mit 0 bedeutet, dass das ganze Paket abgerufen wird. 'tcp dst port 80' bedeutet das Filtern und nur das Anzeigen von Paketen, die für den Port 80 im tcp-Header bestimmt sind.

Wireshark:
Für die benutzerfreundlichere Version, wenn Sie eine GUI laufen haben, betrachten Sie wireshark (formal als ätherisch bekannt).


30
2017-08-07 12:10



Danke Kyle, wie extrahiere ich HTTP-Header-Informationen aus dem tcpdump-Output? - Alex
Alex: Weißt du was? Wireshark wird das viel einfacher machen. Sie können die Option -r verwenden Dateiname Speichern Sie den Speicherauszug in einer Datei und öffnen Sie ihn dann mit wireshark auf Ihrem Desktop. - Kyle Brandt♦
Oh, und lassen Sie die 'dst' fallen, wenn Sie die Antworten auch wollen. - Kyle Brandt♦
-A für Nur-Text (kein Hex-Dump): sudo tcpdump -A -s 0 'tcp dst port 80' - Brent Faust


vielleicht Dumping von Kekse ? ansonsten - schau dir an mod_dumpio.


12
2017-08-07 12:24



mod_dumpio klingt cool! Wahrscheinlich die einfachste Möglichkeit, die Informationen bei der Verwendung von SSL auszugeben (obwohl wirhsark das auch tun kann). +1 :-) - Kyle Brandt♦


Verwenden Sie tcpflow statt tcpdump oder wireshark. Es ist ein Ersatz für tcpdump, erstellt aber für jede Seite einer Verbindung eine Datei, sodass Sie nicht selbst versuchen müssen, den Stream zu decodieren.


7
2017-08-07 13:02



Danke dafür. Ich benutze mod_negotiate und meine curl () nahm .bak-Dateien vor .php, während Browser die .php gefunden haben. Eine harte Nuss. - mckenzm


Grundlegendes Packet Sniffing ist einfach mit ngrep ein Hybrid aus tcpdump und grep. In bestimmten Szenarien, wenn Sie sehen möchten, wie Webbrowser mit Webservern kommunizieren und die HTTP-Header überprüfen.
Führen Sie in diesem Beispiel ein ngrep auf einem Webserver aus:

$ ngrep port 80


7
2017-08-07 14:40





Sie können auch die Header, Request, Response usw. Informationen über den Firefox Browser mit Web Console anzeigen (tools-> web developer-> web console)


-1
2017-11-24 18:29



Firefox ist kein Webserver. - kasperd