Enregistrez le trafic du navigateur HTTP et HTTPS, déchiffrant ce dernier

14

Existe-t-il un moyen de sauvegarder toutes les communications du navigateur HTTP et HTTPS (y compris la demande, la réponse, les en-têtes complets et le corps) dans les fichiers de mon ordinateur?

Les communications HTTPS doivent être enregistrées déchiffrées.

Idéalement, je chercherais quelque chose comme une extension pour Firefox ou Google Chrome.

Cela doit fonctionner sous Linux.

pts
la source

Réponses:

4

HAR est une archive HTTP et est exactement ce que vous souhaitez enregistrer (il inclut HTTPS non chiffré).

Heureusement, c'est maintenant une fonctionnalité de base de tous les principaux navigateurs (ce n'était pas lorsque vous avez posé la question). Plus besoin d'extensions tierces.

Dans Firefox (v41 +):

  • Démarrez Firefox Developer Tools en mode réseau (menu en haut à droite> développeur> réseau ou ctrl-shift-Q)
  • Reproduire le scénario cible
  • Enregistrez la capture en cliquant avec le bouton droit sur la grille et en choisissant "Tout enregistrer sous HAR"
  • Exportez la capture dans un fichier HAR

Autre navigateur:

Dans la version récente de tous les navigateurs, vous pouvez enregistrer HAR facilement:

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

vaab
la source
6

HTTPFox est une extension Firefox qui fera le travail.

=== EDIT ===

Cliquez avec le bouton droit sur le panneau de demande et cliquez sur "Copier toutes les lignes". Ensuite, vous pouvez l'enregistrer dans l'éditeur de votre choix - une feuille de calcul Openoffice par exemple. Veuillez voir l'image que j'ai fournie.

Répondre

slotishtype
la source
Je ne pense pas. Je viens d'installer HttpFox 0.8.9 et je ne vois aucun moyen d'enregistrer tous les trafics enregistrés dans des fichiers. Veuillez noter que j'ai des milliers de demandes HTTP (S) et que je ne suis pas prêt à cliquer mille fois pour les enregistrer toutes. Veuillez préciser comment vous souhaitez enregistrer toutes les données à l'aide de HttpFox.
pts
Je pense que oui, chef. Voir la modification de ma réponse.
slotishtype
1
@slotistype: Merci pour l'image de clarification. Je ne connaissais pas Copier toutes les lignes auparavant, alors je l'ai essayé comme vous l'avez suggéré. Il était très facile de le trouver en utilisant l'image que vous avez fournie. Malheureusement, il ne copie pas le corps de la requête et de la réponse HTTP, ce n'est donc pas une solution à ma question.
pts
@pts mon mauvais. Je viens de le remarquer. Je ne connais pas d'autre outil, sauf si vous installez quelque chose en dehors de Firefox. Bonne chance
slotishtype
FYI HttpFox a un onglet Contenu où je peux voir le corps de la réponse - sauf pour certaines demandes, pour lesquelles il est dit Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED). Mais j'ai besoin du corps de réponse de toutes les demandes, donc HttpFox ne peut pas être une solution à ce problème.
pts
3

Fiddler est certainement quelque chose que vous devriez considérer même s'il ne s'agit pas d'une extension mais d'une application distincte.

E. Jaep
la source
1
Désolé, Fiddler ne fonctionne pas pour moi. car il nécessite Microsoft Windows. J'ai Ubuntu. Une extension de navigateur, comme je l'avais demandé à l'origine, fonctionnerait probablement sur plusieurs systèmes d'exploitation.
pts
3

J'ai trouvé cette réponse voulant faire cela, et aucune des réponses ici ne me convenait parce que j'avais besoin de vider les corps de réponse HTTPS, un peu comme OP. Donc, pour ceux qui atterrissent ici comme moi, voici ce que j'ai trouvé.

J'ai finalement atterri sur mitmproxy , qui n'est pas une extension Firefox, mais atteint l'objectif de journaliser tout le trafic Firefox. C'est tout Python, donc je l'ai installé avec pip install mitmproxy- utilisez un gestionnaire de paquets si vous le souhaitez.

Je l'ai démarré avec mitmproxypour la configuration / débogage initiale, puis utilisé mitmdumppour vider le flux une fois que je l'ai fait fonctionner et affiné.

Je viens de configurer Firefox pour l'utiliser 127.0.0.1:8080comme serveur proxy (8080 étant le port par défaut de mitmproxy), et j'ai vu tout mon trafic Firefox passer par mitmproxy. Pour activer le trafic HTTPS, vous devez accepter le certificat créé par mitmproxy - avec le proxy configuré, allez simplement à "l'adresse magique" de http://mitm.it dans Firefox, cliquez sur le bouton "Autre", cochez les cases pour faire confiance au cert et appuyez sur OK.

Pour vider le corps de réponse non crypté, j'ai dû utiliser un script en ligne très simple :

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 - téléchargez-le en tant que save_response.pyet utilisez-le avec mitmdump -s save_response.py. Les organismes d'intervention commenceront à s'entasser body.txt.

mitmproxy possède également un certain nombre de filtres utiles que vous pouvez spécifier à mitmdump pour saisir exactement ce dont vous avez besoin.

cincodenada
la source
2

httpFox, httpScoop (Mac uniquement) et httpWatch (IE, Firefox, Windows uniquement) sont tous des outils que j'utilise pour ce faire. De plus, vous pouvez également essayer Fiddler (comme suggéré précédemment) et si vous utilisez un Mac, vous pouvez essayer Charles Proxy. Mon préféré est httpWatch (vous pouvez facilement filtrer les en-têtes, le contenu, l'URL, etc.), mais cela coûte cher, ce qui n'est peut-être pas une option.

Vous voudrez peut-être également regarder le projet HAR (HAR signifie HTTP Archive) et est une approche basée sur des normes pour enregistrer les transactions http, les en-têtes, le contenu, etc. Un certain nombre des outils mentionnés sont capables d'exporter les fichiers HAR pour les visualiser en utilisant he HAR Viewer (que vous connaissez bien si vous avez regardé la fonction cascade dans Firebug). En fait, vous pouvez également utiliser Firebug pour générer ces fichiers / journaux à l'aide de NetExport.

FWIW httpScoop est une bonne méthode pour déboguer / tracer le trafic HTTP sur un réseau sans fil, j'ai écrit un article à ce sujet il y a quelque temps: http://blog.adtools.co.uk/trace-debug-mobile-application-http- requêtes-utilisant-macos /

Sean Dillon
la source
Lequel des outils que vous mentionnez peut enregistrer un vidage de toutes les communications enregistrées sur le disque? httpFox ne peut pas. httpScoop est uniquement Mac, et je demandais une solution Linux. httpWatch est uniquement Windows, et je demandais une solution Linux. Fiddler est uniquement Windows, et je demandais une solution Linux. Charles Proxy est uniquement Mac, et je demandais une solution Linux. Merci d'avoir mentionné Firebug + NetExport, qui peut potentiellement fonctionner.
pts
Firebug + NetExport fonctionne comme un charme pour moi sur Linux. Ils exportent le trafic SSL non crypté (comme je le souhaitais). Je serais heureux d'accepter votre réponse, mais veuillez d'abord supprimer toutes les autres propositions (ou les déplacer vers une réponse distincte).
pts
1

Wireshark peut être utilisé pour capturer des paquets réseau, y compris des éléments de la couche de protocole http, et les enregistrer sur votre ordinateur. Il peut également capturer des informations https, mais je doute que vous puissiez le configurer pour décrypter quoi que ce soit.

40XUserNotFound
la source
1
Merci d'avoir suggéré Wireshark, mais il est inutile comme réponse à ma question, car il n'enregistre pas le flux HTTPS décrypté.
pts
2
Wireshark peut décrypter le trafic SSL depuis l'une des dernières versions si vous avez le certificat de serveur privé .
cweiske
1
Je n'ai pas le certificat de serveur privé.
pts