Captura apenas solicitações de postagem HTTP através do tcpdump

1

Por motivos de segurança, queremos listar todos os URIs de solicitações POST que são usados em nossos aplicativos (portanto, desabilitaríamos POST por meio do mod_security, exceto os URIs). A idéia é usar o tcpdump para capturá-los durante um teste de regressão completo e, em seguida, usar o comando wireshark para obter uma lista distinta de todos os URIs.

O problema é que não estamos conseguindo encontrar os argumentos tcpdump corretos para capturar apenas as solicitações de postagem HTTP (o que é necessário porque um tcpdump completo preencheria rapidamente o disco).

O comando a seguir funciona, mas mostra GETs, POSTS e alguns outros pacotes (muitos):

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

Seguindo apenas a solicitação POST de captura, mas no wireshark eles são mostrados como pacotes TCP e não podemos extrair o URI desses (como fazemos para o HTTP usando o valor personalizado http.request.uri no wireshark):

sudo tcpdump -A 'tcp port 9081 tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'

Quais argumentos tcpdump devemos usar para capturar solicitações HTTP POST (que são mostradas como pacotes HTTP em wireshark) ou como podemos extrair o URI desses pacotes TCP (segundo comando)?

    
por Stijn Geukens 20.11.2014 / 12:22

0 respostas