¿Puedo usar tcpdump para obtener peticiones HTTP, encabezado de respuesta y cuerpo de respuesta?

Estoy utilizando tcpdump para obtener datos HTTP ejecutando el siguiente comando:

 sudo tcpdump -A -s 1492 dst port 80 

El resultado del comando anterior:

  1. Encabezados, creo que la solicitud y la respuesta de encabezados.
  2. Datos ilegibles.
  3. La url GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg .

Necesito un resultado más claro, por ejemplo, solicitud legible> cabecera de respuesta> cuerpo de respuesta, etc. ¿Cómo puedo filtrar mis resultados?

Hay filtros tcpdump para HTTP GET y HTTP POST (o para ambos más el cuerpo del mensaje):

  • Ejecutar man tcpdump | less -Ip examples man tcpdump | less -Ip examples para ver algunos ejemplos

  • Aquí hay un filtro tcpdump para HTTP GET:

     sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' 
  • Aquí hay un filtro tcpdump para HTTP POST:

     sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' 
  • Supervisar el tráfico HTTP incluyendo los encabezados de solicitud y respuesta y el cuerpo del mensaje ( fuente ):

     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)' 

Para más información sobre el bit-twiddling en el encabezado TCP, vea: String-Matching Capture Filter Generator (enlace a la explicación de Sake Blok).

Yo recomendaría el uso de Wireshark , que tiene una opción "Follow TCP Stream" que hace que sea muy fácil ver las peticiones y respuestas completas para una conexión TCP particular. Si prefiere usar la línea de comandos, puede probar tcpflow , una herramienta dedicada a capturar y reconstruir el contenido de las corrientes TCP.

Otras opciones serían usar un proxy de depuración de HTTP, como Charles o Fiddler como sugiere EricLaw. Éstos tienen la ventaja de contar con soporte específico para HTTP para facilitar el tratamiento de varios tipos de codificaciones y otras funciones como guardar solicitudes para reproducirlas o modificar solicitudes.

También puede utilizar una herramienta como Firebug (Firefox), Web Inspector (Safari, Chrome y otros navegadores basados ​​en WebKit), o Opera Dragonfly , todos los cuales ofrecen alguna capacidad de ver la solicitud y los encabezados y cuerpos de respuesta (aunque la mayoría de Ellos no te permiten ver la secuencia exacta de bytes, sino cómo los navegadores analizaron las peticiones).

Y finalmente, siempre puede crear peticiones a mano, utilizando algo como telnet, netcat o socat para conectarse al puerto 80 y escribir la solicitud manualmente, o una herramienta como htty para ayudar a construir fácilmente una solicitud e inspeccionar la respuesta.

Aquí hay otra opción: Chaosreader

Así que tengo que depurar una aplicación que publica xml a una aplicación de terceros. He encontrado un pequeño perl script brillante que hace todo el trabajo duro – que acaba de tirar un archivo de salida tcpdump, y hace toda la manipulación y salidas de todo lo que necesita …

El script se llama chaosreader0.94. Ver http://www.darknet.org.uk/2007/11/chaosreader-trace-tcpudp-sessions-from-tcpdump/

Funcionó como una delicia, hice lo siguiente:

 tcpdump host www.blah.com -s 9000 -w outputfile; perl chaosreader0.94 outputfile 
  • android Apache httpclient archivo de carga ,. tiene algún error de reensamble TCP extraño
  • Implementación cliente / servidor de socket TCP de Android
  • ¿Cómo puedo mantener mi aplicación en segundo plano?
  • El consumo de la batería mientras TCP está abierto para ADB vía wifi puede conectar
  • Difusión del servidor TCP de Android
  • Android: Transferencia de la conexión TCP de 3G a WiFi
  • ¿Problemas con el uso de TCP y UDP en la misma aplicación?
  • ANDROID - Enviar una captura de pantalla de java a android via tcp socket
  • ConnectionTimeout versus SocketTimeout
  • Conexión de socket TCP como servicio
  • Android VpnService, reenvío de paquetes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.