Registre o tráfego do navegador HTTP e HTTPS, descriptografando o último

14

Existe uma maneira de salvar todas as comunicações do navegador HTTP e HTTPS (incluindo solicitação, resposta, cabeçalhos completos e corpo) em arquivos no meu computador?

As comunicações HTTPS devem ser salvas descriptografadas.

Idealmente, eu estaria procurando algo como uma extensão para o Firefox ou Google Chrome.

Ele deve funcionar no Linux.

pts
fonte

Respostas:

4

HAR é um arquivo HTTP e é exatamente o que você deseja salvar (inclui HTTPS não criptografado).

Felizmente, agora esse é um recurso básico de todos os principais navegadores (não foi quando você fez a pergunta). Não há mais necessidade de extensões de terceiros.

No Firefox (v41 +):

  • Inicie as Ferramentas do desenvolvedor do Firefox no modo Rede (menu superior direito> Desenvolvedor> Rede ou ctrl-shift-Q)
  • Reproduzir o cenário de destino
  • Salve a captura clicando com o botão direito do mouse na grade e escolhendo "Salvar tudo como HAR"
  • Exportar a captura para um arquivo HAR

Outro navegador:

Na versão recente de todos os navegadores, você pode salvar o HAR facilmente:

https://toolbox.googleapps.com/apps/har_analyzer/

vaab
fonte
6

HTTPFox é uma extensão do Firefox que fará o trabalho.

=== EDIT ===

Clique com o botão direito do mouse no painel de solicitação e clique em "Copiar todas as linhas". Em seguida, você pode salvá-lo para qualquer editor que desejar - planilha do Openoffice por exemplo. Por favor, veja a imagem que eu forneci.

Responda

slotishtype
fonte
Acho que não. Acabei de instalar o HttpFox 0.8.9 e não vejo nenhuma maneira de salvar todo o tráfego registrado em arquivos. Observe que tenho milhares de solicitações HTTP (S) e não estou disposto a clicar mil vezes para salvar todas elas. Por favor, esclareça como você salvaria todos os dados usando o HttpFox.
pts
Eu acho que sim, chefe. Veja a edição da minha resposta.
slotishtype
1
@ slotistype: Obrigado pela imagem de esclarecimento. Eu não sabia sobre Copiar todas as linhas antes, então tentei como você sugeriu. Foi muito fácil encontrá-lo usando a imagem que você forneceu. Infelizmente, ele não copia o corpo da solicitação e resposta HTTP, portanto, não é uma solução para minha pergunta.
pts
@pts meu mal. Só notei isso. Não conheço outra ferramenta, a menos que você instale algo fora do firefox. Boa sorte #
slotishtype 25/06
Para sua informação, o HttpFox possui uma guia Conteúdo, na qual eu posso visualizar o corpo da resposta - exceto alguns pedidos, para os quais ele diz Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED). Mas eu preciso do corpo de resposta de todas as solicitações, portanto, o HttpFox não pode ser uma solução para esse problema.
pts
3

O Fiddler é definitivamente algo que você deve considerar, mesmo que não seja uma extensão, mas um aplicativo separado.

E. Jaep
fonte
1
Desculpe, o Violinista não funciona para mim. porque requer o Microsoft Windows. Eu tenho o Ubuntu. Uma extensão do navegador, como pedi originalmente, provavelmente funcionaria em vários sistemas operacionais.
pts
3

Eu encontrei esta resposta querendo fazer isso, e nenhuma das respostas aqui me convinha porque eu precisava despejar os corpos de resposta HTTPS, bem como o OP. Então, para aqueles que pousam aqui como eu, aqui está o que eu encontrei.

Acabei encontrando o mitmproxy , que não é uma extensão do Firefox, mas cumpre o objetivo de registrar todo o tráfego do Firefox. É tudo Python, então eu o instalei com pip install mitmproxy- use um gerenciador de pacotes, se quiser.

Iniciou com mitmproxya configuração / depuração inicial e, em seguida, usoumitmdump despejo do fluxo, uma vez que eu tinha que trabalhar e refinado.

Acabei de configurar o Firefox para usar 127.0.0.1:8080como servidor proxy (8080 sendo a porta padrão do mitmproxy) e vi todo o meu tráfego do Firefox passando pelo mitmproxy. Para habilitar o tráfego HTTPS, você deve aceitar o certificado criado pelo mitmproxy - com o proxy configurado, basta acessar o "endereço mágico" do http://mitm.it no Firefox, clicar no botão "Outro" e marcar as caixas para confiar no certificado e pressione OK.

Para despejar o corpo de resposta não criptografado, tive que usar um script embutido muito simples :

from libmproxy.model import decoded

def response(context, flow):
    with decoded(flow.response):  # automatically decode gzipped responses.
        with open("body.txt","ab") as f:
            f.write(flow.response.content)

Gist here - faça o download save_response.pye use-o com mitmdump -s save_response.py. Os órgãos de resposta começarão a se acumularbody.txt .

O mitmproxy também possui vários filtros úteis que você pode especificar para que o mitmdump obtenha exatamente o que você precisa.

cincodenada
fonte
2

httpFox, httpScoop (somente Mac) e httpWatch (IE, Firefox, somente Windows) são todas as ferramentas que eu uso para fazer isso. Além disso, você também pode tentar o Fiddler (como sugerido anteriormente) e também se estiver usando um Mac, você pode tentar o Charles Proxy. Meu favorito pessoal é o httpWatch (você pode filtrar facilmente cabeçalhos, conteúdo, URL etc.), mas como é caro, pode não ser uma opção.

Você também pode querer examinar o projeto HAR (HAR significa HTTP Archive) e é uma abordagem baseada em padrões para registrar transações http, cabeçalhos, conteúdo etc. Várias das ferramentas mencionadas são capazes de exportar arquivos HAR para visualização usando ele HAR Viewer (com o qual você se familiarizará se tiver examinado o recurso de cascata no Firebug). De fato, você pode usar o Firebug para gerar esses arquivos / logs para você também usando o NetExport.

O FWIW httpScoop é um bom método para depurar / rastrear tráfego HTTP em uma rede sem fio. Escrevi um artigo sobre como fazer isso há algum tempo: http://blog.adtools.co.uk/trace-debug-mobile-application-http- request-using-macos /

Sean Dillon
fonte
Quais das ferramentas mencionadas podem salvar um despejo de toda a comunicação registrada no disco? O httpFox não pode. O httpScoop é apenas para Mac, e eu estava pedindo uma solução Linux. O httpWatch é apenas para Windows e eu estava pedindo uma solução para Linux. O Fiddler é apenas para Windows, e eu estava pedindo uma solução para Linux. Charles Proxy é apenas para Mac, e eu estava pedindo uma solução Linux. Obrigado por mencionar o Firebug + NetExport, que pode funcionar potencialmente.
pts
O Firebug + NetExport funciona como um encanto para mim no Linux. Eles exportam tráfego SSL não criptografado (como eu desejava). Ficaria feliz em aceitar sua resposta, mas remova todas as outras proposições (ou mova-as para uma resposta separada) primeiro.
Pts
1

O Wireshark pode ser usado para capturar pacotes de rede, incluindo itens na camada de protocolo http, e salvá-los no seu computador. Ele também pode capturar informações https, mas duvido que você possa configurá-las para descriptografar qualquer coisa.

40XUserNotFound
fonte
1
Obrigado por sugerir o Wireshark, mas é inútil como resposta à minha pergunta, pois não salva o fluxo HTTPS descriptografado.
pts
2
O Wireshark pode descriptografar o tráfego SSL desde uma das últimas versões se você tiver o certificado de servidor privado .
cweiske
1
Eu não tenho o certificado do servidor privado.
pts