Meu aplicativo está enviando solicitações HTTP para algum servidor e quero ver os dados reais que está enviando. Alguns detalhes que eu gostaria de ver:
- Método de solicitação (GET / POST / PUT, etc.)
- Tipo de conteúdo
- Corpo
Qual é a melhor e mais simples maneira de conseguir isso?
networking
megas
fonte
fonte
Respostas:
Bem, para todos aqueles fãs do tcpdump =)
EXECUTE TODOS ESTES COMANDOS COMO RAIZ !!!
Obtenha raiz em um terminal com
Para capturar os pacotes RAW ...
Isso irá capturar todos os pacotes brutos, em todas as portas, em todas as interfaces e gravá-los em um arquivo
/tmp/http.log
.Execute seu aplicativo. Obviamente, ajuda se você não executar outros aplicativos que usam HTTP (navegadores da web).
Mate
tcpdump
Para ler o log, use o
-A
sinalizador e canalize a saída paraless
:O
-A
sinalizador imprime a "carga útil" ou o texto ASCII nos pacotes. Isso enviará a saída paraless
, você pode subir e descer a página. Para sairless
, digite Q.Quando vou ao Google, vejo (nos pacotes brutos):
tcpdump
possui um longo conjunto de opções para refinar a coleta de dados, especificando interfaces de rede para portas e endereços IP de origem e destino. NÃO pode descriptografar (para que não funcione com HTTPS).Depois de saber em que está interessado, você poderá usar várias opções
tcpdump
para registrar apenas os dados de seu interesse. A estratégia geral é primeiro registrar todos os pacotes, revisar os dados brutos e capturar apenas os pacotes de interesse.Alguns sinalizadores úteis (opções):
Há uma curva de aprendizado, tanto para usar
tcpdump
quanto para aprender a analisar os dados que você coleta. Para uma leitura mais aprofundada, sugiro otcpdump
Primer with Examples de Daniel Miessler .fonte
0 packets captured 0 packets received by filter 0 packets dropped by kernel
Mas eu abri vários sites no navegador Chrome quando o tcpdump estava monitorando.tcpdump -i any -w /tmp/http.log &
trabalhou.Primeira instalação a
tcpflow
partir dos repositórios oficiais do Ubuntu:Em seguida, execute este comando para inspecionar todas as solicitações HTTP na porta padrão:
fonte
Eu sugiro que você tente o Wireshark
Observe que o Wireshark é bastante avançado e pode demorar um pouco para se acostumar. Eu não o uso há alguns anos, mas ainda deve ser perfeito para o que você procura - se não um pouco cheio de recursos.
Informações sobre o Wireshark e como usá-lo podem ser encontradas na página inicial do Wireshark .
fonte
Também possível com o comando, que fornece uma saída organizada, mesmo para SSL:
fonte