Capture solicitações HTTP GET

1

No Wiki Wireshark é um exemplo de filtragem de HTTP GET requests:

Capture HTTP GET requests. This looks for the bytes 'G', 'E', 'T', and ' ' (hex values 47, 45, 54, and 20) just after the TCP header. "tcp[12:1] & 0xf0) >> 2" figures out the TCP header length. From Jefferson Ogata via the tcpdump-workers mailing list.

com este filtro:

port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420

Infelizmente isso não funciona. Como está o filtro correto para as solicitações HTTP GET ?

    
por cuh 08.06.2011 / 13:50

1 resposta

1

Ele funciona, certifique-se de que você esteja cercando seu filtro entre aspas duplas, para que o shell não tente analisar os argumentos do filtro.

por exemplo. uma onda de google.com para mim:

$ sudo tshark -i eth0 "port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420"
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
  0.000000   10.53.0.66 -> 209.85.143.104 HTTP GET / HTTP/1.1 

Esta é uma maneira bastante complicada de fazer isso. O tshark permite-lhe o conceito de aplicar filtros de leitura. Agora, estes podem não ser tão úteis se você tiver um grande volume de dados (a filtragem acontece após a captura), mas eles são certamente mais intuitivos e legíveis.

$ sudo tshark -i eth0 -R 'http.request.method == "GET"' "port 80"
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
  5.641015   10.53.0.66 -> 209.85.143.104 HTTP GET / HTTP/1.1 
    
por 08.06.2011 / 14:22