wireshark http POST

3

Eu gostaria de ter um filtro CAPTURE do método de solicitação http POST.

Eu sei que é fácil fazer isso pelo filtro de exibição http.request.method==POST , mas eu preciso do tcpdump compatível.

Eu escrevi tcp dst port 80 and (tcp[13] = 0x18)
Mas não é perfeito ...

tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)
funciona melhor, mas ... pacotes não são tratados como pacotes http, então eu não posso fazer meus filtros de exibição adicionais ...

E existe alguma maneira de não exibir as informações do cabeçalho frame, tcp, ip e http, apenas o valor do campo de linhas de texto (conteúdo do POST)?

Ou a mesma coisa no tcpdump, apenas despejando conteúdo de formulário html em POST?

    
por Nakilon 29.03.2010 / 01:55

3 respostas

4

Não há garantia de que todos os dados postados estarão no mesmo pacote da própria seqüência de caracteres do comando POST. Na verdade, se os dados postados forem mais do que cerca de 1500 bytes (provavelmente um pouco menos devido à presença de outros cabeçalhos HTTP), você está praticamente garantido que nem todos estarão no mesmo pacote. Portanto, para obter melhores resultados, você precisará de um método de filtragem que compreenda uma transação HTTP de vários pacotes, e a linguagem de filtro da libpcap (que é o que o tcpdump usa e o que o wireshark usa para filtros capture ). / p>     

por 29.03.2010 / 03:26
1

Qual sistema operacional?

Se for linux, você pode usar tcpdump -s 0 -A -i <if> port 80 junto com todos os outros filtros necessários para capturar e imprimir os pacotes http nos quais está interessado e enviá-los para um script perl / bash / awk / whatever para filtrar conteúdo de lá.

    
por 29.03.2010 / 03:29
1

É difícil entender o que você está perguntando, mas meu palpite é que você só precisa encontrar o pacote na sua captura do Wireshark, clique com o botão direito nele e escolha "Follow Stream" no menu. É apenas um palpite ... apenas tentando ajudar?

    
por 07.04.2010 / 18:01