Eu encontrei essa resposta querendo fazer isso, e nenhuma das respostas aqui me adequou porque eu precisava despejar corpos de resposta HTTPS, muito parecido com OP. Então, para aqueles que pousam aqui como eu fiz, aqui está o que eu encontrei.
Eu finalmente consegui 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 instalei com pip install mitmproxy
- use um gerenciador de pacotes se você quiser.
Comecei com mitmproxy
para a configuração / depuração inicial e usei mitmdump
para despejar o fluxo assim que eu o trabalhasse e refinasse.
Acabei de configurar o Firefox para usar 127.0.0.1:8080
como o servidor proxy (8080 sendo a porta padrão do mitmproxy), e vi todo o tráfego do Firefox vindo através do mitmproxy. Para ativar o tráfego HTTPS, você precisa aceitar o certificado que o mitmproxy cria - com o proxy configurado, basta acessar o "endereço mágico" do link em Firefox, clique no botão "Outro", marque as caixas para confiar no certificado e clique em OK.
Para despejar o corpo da resposta não criptografada, 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 aqui - faça o download como save_response.py
e use-o com mitmdump -s save_response.py
. Os corpos de resposta começarão a acumular em body.txt
.
O mitmproxy também tem vários filtros úteis que você pode especificar para mitmdump para pegar exatamente o que você precisa.