Registra il traffico del browser HTTP e HTTPS, decodificando quest'ultimo


14

Esiste un modo per salvare tutte le comunicazioni del browser HTTP e HTTPS (inclusi richiesta, risposta, intestazioni complete e corpo) sui file sul mio computer?

Le comunicazioni HTTPS devono essere salvate decrittografate.

Idealmente sarei alla ricerca di qualcosa come un'estensione per Firefox o Google Chrome.

Deve funzionare su Linux.

Risposte:


4

HAR è l'archivio HTTP ed è esattamente ciò che si desidera salvare (include HTTPS non crittografato).

Fortunatamente questa è ora una funzionalità di base di tutti i principali browser (non lo era quando hai posto la domanda). Non hai più bisogno di estensioni di terze parti.

In Firefox (v41 +):

  • Avvia gli Strumenti per sviluppatori Firefox in modalità Rete (menu in alto a destra> Sviluppatore> Rete o ctrl-shift-Q)
  • Riprodurre lo scenario target
  • Salvare l'acquisizione facendo clic con il tasto destro sulla griglia e selezionando "Salva tutto come HAR"
  • Esporta l'acquisizione in un file HAR

Un altro browser:

Nella versione recente di tutti i browser, è possibile salvare facilmente HAR:

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


6

HttpFox è un'estensione di Firefox che farà il lavoro.

=== === EDIT

Fare clic con il tasto destro sul pannello richieste e fare clic su "Copia tutte le righe". Quindi puoi salvarlo in qualsiasi editor ti piaccia, ad esempio il foglio di calcolo di Openoffice. Si prega di vedere l'immagine che ho fornito.

Risposta


Io non la penso così. Ho appena installato HttpFox 0.8.9 e non riesco a vedere alcun modo per salvare tutti i traffice registrati su file. Tieni presente che ho migliaia di richieste HTTP (S) e non sono disposto a fare clic mille volte per salvarle tutte. Si prega di chiarire come salvare tutti i dati utilizzando HttpFox.
punti

Penso di sì, capo. Vedi la modifica alla mia risposta.
slotishtype il

1
@slotistype: grazie per l'immagine di chiarimento. Non sapevo prima di copiare tutte le righe , quindi l'ho provato come da lei suggerito. È stato molto facile trovarlo usando l'immagine che hai fornito. Sfortunatamente non copia il corpo della richiesta e della risposta HTTP, quindi non è una soluzione alla mia domanda.
punti

@pts my bad. L'ho appena notato. Non conosco un altro strumento, a meno che non intalli qualcosa al di fuori di Firefox. Buona fortuna
slotishtype il

FYI HttpFox ha una scheda Contenuto in cui posso visualizzare il corpo della risposta - ad eccezione di alcune richieste, per le quali si dice Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED). Ma ho bisogno del corpo di risposta di tutte le richieste, quindi HttpFox non può essere una soluzione a questo problema.
punti

3

Fiddler è sicuramente qualcosa che dovresti considerare anche se non è un'estensione ma un'applicazione separata.


1
Mi dispiace, Fiddler non funziona per me. perché richiede Microsoft Windows. Ho Ubuntu. Un'estensione del browser, come avevo chiesto inizialmente, avrebbe probabilmente funzionato su più sistemi operativi.
punti

3

Ho trovato questa risposta volendo fare questo, e nessuna delle risposte qui mi andava bene perché avevo bisogno di scaricare corpi di risposta HTTPS, proprio come OP. Quindi, per coloro che atterrano qui come ho fatto io, ecco cosa ho trovato.

Alla fine sono arrivato su mitmproxy , che non è un'estensione di Firefox, ma raggiunge l'obiettivo di registrare tutto il traffico di Firefox. È tutto Python, quindi l'ho installato conpip install mitmproxy - se vuoi, usa un gestore di pacchetti.

Avviato con mitmproxyper l'installazione / debug iniziale e quindi utilizzatomitmdump ho per scaricare il flusso una volta che l'ho fatto funzionare e perfezionato.

Ho appena impostato Firefox da utilizzare 127.0.0.1:8080come server proxy (8080 è la porta predefinita di mitmproxy) e ho visto tutto il mio traffico Firefox passare attraverso mitmproxy. Per abilitare il traffico HTTPS, devi accettare il certificato creato da mitmproxy - con il proxy impostato, vai all '"indirizzo magico" di http://mitm.it in Firefox, fai clic sul pulsante "Altro", seleziona le caselle fidarsi del certificato e premere OK.

Per scaricare il corpo della risposta non crittografato, ho dovuto usare uno script inline molto semplice :

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)

Vai qui : scaricalo come save_response.pye usalo con mitmdump -s save_response.py. Gli organismi di risposta inizieranno ad accumularsibody.txt .

mitmproxy ha anche una serie di filtri utili che puoi specificare per mitmdump per afferrare esattamente ciò di cui hai bisogno.


2

httpFox, httpScoop (solo Mac) e httpWatch (IE, Firefox, solo Windows) sono tutti gli strumenti che uso per fare questo. Inoltre puoi anche provare Fiddler (come suggerito in precedenza) e anche se stai usando un Mac potresti provare Charles Proxy. Il mio preferito è httpWatch (puoi facilmente filtrare le intestazioni, i contenuti, l'URL ecc.), Ma è costoso, quindi potrebbe non essere un'opzione.

Potresti anche voler guardare il HAR progetto (HAR sta per HTTP Archive) ed è un approccio basato su standard per la registrazione di transazioni http, intestazioni, contenuti ecc. Alcuni degli strumenti menzionati sono in grado di esportare i tuoi file HAR per la visualizzazione usando lui HAR Viewer (che ti sarà familiare se hai guardato la funzione a cascata in Firebug). In effetti, è possibile utilizzare Firebug per generare questi file / registri anche tramite NetExport.

FWIW httpScoop è un buon metodo per il debug / traccia del traffico HTTP su una rete wireless, ho scritto un articolo su come farlo qualche tempo fa: http://blog.adtools.co.uk/trace-debug-mobile-application-http- macos richieste-tramite-/


Quale degli strumenti menzionati può salvare un dump di tutte le comunicazioni registrate su disco? httpFox non può. httpScoop è solo per Mac e stavo chiedendo una soluzione Linux. httpWatch è solo per Windows e stavo chiedendo una soluzione Linux. Fiddler è solo per Windows e stavo chiedendo una soluzione Linux. Charles Proxy è solo per Mac e stavo chiedendo una soluzione Linux. Grazie per aver menzionato Firebug + NetExport, che può potenzialmente funzionare.
Punti

Firebug + NetExport funziona come un incantesimo per me su Linux. Esportano il traffico SSL non crittografato (proprio come desideravo). Sarei felice di accettare la tua risposta, ma per favore rimuovi prima tutte le altre proposizioni (o spostale in una risposta separata).
Punti

1

Wireshark può essere utilizzato per acquisire pacchetti di rete, inclusi elementi nel livello del protocollo http, e salvarli sul computer. Può anche catturare informazioni https, ma dubito che saresti in grado di configurarlo per decrittografare qualsiasi cosa.


1
Grazie per aver suggerito Wireshark, ma è inutile come risposta alla mia domanda, poiché non salva il flusso HTTPS decrittografato.
punti

2
Wireshark può decrittografare il traffico SSL da una delle ultime versioni se si dispone del certificato del server privato .
cweiske,

1
Non ho il certificato del server privato.
pts
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.