Registre el tráfico del navegador HTTP y HTTPS, descifrando este último

14

¿Hay alguna manera de que pueda guardar todas las comunicaciones del navegador HTTP y HTTPS (incluyendo solicitud, respuesta, encabezados completos y cuerpo) en los archivos de mi computadora?

Las comunicaciones HTTPS deben guardarse descifradas.

Idealmente, estaría buscando algo como una extensión para Firefox o Google Chrome.

Debe funcionar en Linux.

pts
fuente

Respuestas:

4

HAR es HTTP Archive, y es exactamente lo que desea guardar (incluye HTTPS sin cifrar).

Afortunadamente, esta es ahora una característica básica de todos los principales navegadores (no lo fue cuando hizo la pregunta). No más necesidad de extensiones de terceros.

En Firefox (v41 +):

  • Inicie Firefox Developer Tools en modo de red (menú superior derecho> Desarrollador> Red, o ctrl-shift-Q)
  • Reproduce el escenario objetivo
  • Guarde la captura haciendo clic derecho en la cuadrícula y eligiendo "Guardar todo como HAR"
  • Exportar la captura a un archivo HAR

Otro navegador:

En la versión reciente de todos los navegadores, puede guardar HAR fácilmente:

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

vaab
fuente
6

HTTPFox es una extensión de Firefox que hará el trabajo.

=== EDITAR ===

Haga clic derecho en el panel de solicitud y haga clic en "Copiar todas las filas". Luego, puede guardarlo en el editor que desee: la hoja de cálculo de Openoffice, por ejemplo. Por favor vea la imagen que proporcioné.

Responder

tipo slish
fuente
No lo creo. Acabo de instalar HttpFox 0.8.9, y no veo ninguna forma de guardar todo el tráfico registrado en los archivos. Tenga en cuenta que tengo miles de solicitudes HTTP (S), y no estoy dispuesto a hacer clic mil veces para guardarlas todas. Por favor, aclare cómo guardaría todos los datos usando HttpFox.
pts
Creo que sí, jefe. Vea la edición de mi respuesta.
slotishtype
1
@slotistype: Gracias por la imagen de aclaración. No sabía acerca de Copiar todas las filas antes, así que lo intenté como sugirió. Fue muy fácil encontrarlo usando la imagen que proporcionaste. Desafortunadamente, no copia el cuerpo de solicitud y respuesta HTTP, por lo que no es una solución a mi pregunta.
pts
@pts mi mal. Acabo de notar eso. No conozco otra herramienta, a menos que instales algo fuera de Firefox. Buena suerte
slotishtype
FYI HttpFox tiene una pestaña de Contenido donde puedo ver el cuerpo de la respuesta, a excepción de algunas solicitudes, para lo cual dice Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED). Pero necesito el cuerpo de respuesta de todas las solicitudes, por lo que HttpFox no puede ser una solución a este problema.
pts
3

Fiddler es definitivamente algo que debes considerar incluso si no es una extensión sino una aplicación separada.

E. Jaep
fuente
1
Lo siento, Fiddler no funciona para mí. porque requiere Microsoft Windows. Tengo Ubuntu Una extensión de navegador, como pregunté originalmente, probablemente funcionaría en múltiples sistemas operativos.
pts
3

Encontré esta respuesta que quería hacer esto, y ninguna de las respuestas aquí me convenía porque necesitaba volcar los cuerpos de respuesta HTTPS, al igual que OP. Entonces, para aquellos que aterrizan aquí como lo hice, esto es lo que encontré.

Finalmente llegué a mitmproxy , que no es una extensión de Firefox, pero cumple el objetivo de registrar todo el tráfico de Firefox. Todo es Python, así que lo instalé con pip install mitmproxy: use un administrador de paquetes si lo desea.

Lo inicié mitmproxypara la configuración / depuración inicial, y luego solía mitmdumpvolcar la secuencia una vez que la tuve funcionando y refinada.

Acabo de configurar Firefox para usarlo 127.0.0.1:8080como servidor proxy (8080 es el puerto predeterminado de mitmproxy), y vi que todo mi tráfico de Firefox llegaba a través de mitmproxy. Para habilitar el tráfico HTTPS, debe aceptar el certificado que crea mitmproxy: con el proxy configurado, simplemente vaya a la "dirección mágica" de http://mitm.it en Firefox, haga clic en el botón "Otro", marque las casillas confiar en el certificado y presionar OK.

Para volcar el cuerpo de respuesta sin cifrar, tuve que usar un script en línea muy 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 aquí : descárguelo como save_response.pyy úselo con mitmdump -s save_response.py. Los cuerpos de respuesta comenzarán a acumularse body.txt.

mitmproxy también tiene una serie de filtros útiles que puede especificar para mitmdump para obtener justo lo que necesita.

cincodenada
fuente
2

httpFox, httpScoop (solo Mac) y httpWatch (IE, Firefox, solo Windows) son todas las herramientas que utilizo para hacer esto. Además, también puedes probar Fiddler (como se sugirió anteriormente) y también si estás usando una Mac, puedes probar Charles Proxy. Mi favorito personal es httpWatch (puede filtrar fácilmente en encabezados, contenido, url, etc.), pero esto es costoso, por lo que puede no ser una opción.

También es posible que desee ver el proyecto HAR (HAR significa HTTP Archive) y es un enfoque basado en estándares para registrar transacciones http, encabezados, contenido, etc. Varias de las herramientas mencionadas pueden exportar los archivos HAR para verlos utilizando HAR Viewer (con el que estarás familiarizado si has visto la función de cascada en Firebug). De hecho, puede usar Firebug para generar estos archivos / registros para usted también usando NetExport.

FWIW httpScoop es un buen método para depurar / rastrear el tráfico HTTP en una red inalámbrica, escribí un artículo sobre esto hace algún tiempo: http://blog.adtools.co.uk/trace-debug-mobile-application-http- solicitudes-usando-macos /

Sean Dillon
fuente
¿Cuál de las herramientas que menciona puede guardar un volcado de todas las comunicaciones registradas en el disco? httpFox no puede. httpScoop es solo para Mac, y estaba pidiendo una solución de Linux. httpWatch es solo para Windows, y estaba pidiendo una solución de Linux. Fiddler es solo para Windows, y estaba pidiendo una solución de Linux. Charles Proxy es solo para Mac, y estaba pidiendo una solución de Linux. Gracias por mencionar Firebug + NetExport, que potencialmente puede funcionar.
pts
Firebug + NetExport funciona como un encanto para mí en Linux. Exportan el tráfico SSL sin cifrar (tal como lo deseé). Estaré encantado de aceptar su respuesta, pero primero elimine todas las demás propuestas (o muévalas a una respuesta separada).
pts
1

Wireshark se puede usar para capturar paquetes de red, incluidos elementos en la capa de protocolo http, y guardarlos en su computadora. También puede capturar información https, pero dudo que pueda configurarlo para descifrar cualquier cosa.

40XUserNotFound
fuente
1
Gracias por sugerir Wireshark, pero es inútil como respuesta a mi pregunta, ya que no guarda el flujo HTTPS descifrado.
pts
2
Wireshark puede descifrar el tráfico SSL desde una de las últimas versiones si tiene el certificado de servidor privado .
cweiske
1
No tengo el certificado de servidor privado.
pts