cat /blog/multiples-sesiones-firefox-burpsuite.md
Web29 ENE 202610 min lectura

Múltiples sesiones con firefox + Burp Suite

>
author: Unkndown

Introducción

Durante la realización de una prueba de penetración web, se evalúan vulnerabilidades de seguridad, incluyendo las pruebas cruzadas. Por ejemplo, si el usuario A tiene acceso al recurso X, pero el usuario B no, se intenta acceder al recurso X utilizando las credenciales del usuario B. Este proceso puede llevarse a cabo a través de la interfaz web o directamente accediendo al backend mediante la API. Asimismo, se busca explotar vulnerabilidades de XSS almacenado para robar credenciales de administrador desde un usuario con bajos privilegios. Estos son algunos de los escenarios que requieren generalmente la gestión simultánea de dos sesiones, tal como podemos ver en el siguiente diagrama.

sequenceDiagram
    participant UA as Navegador - Usuario A
    participant UB as Navegador - Usuario B
    participant WEB as Servidor Web
    participant API as Backend / API

    UA->>WEB: Inicio de sesión (Usuario A)
    WEB-->>UA: Sesión A creada (cookie/token A)
    UB->>WEB: Inicio de sesión (Usuario B)
    WEB-->>UB: Sesión B creada (cookie/token B)

    note over UA,UB: Dos sesiones activas en paralelo

    UA->>WEB: Solicita recurso X (Autorizado)
    WEB-->>UA: Recurso X entregado

    UB->>WEB: Intenta acceder a recurso X (sin permiso)
    WEB-->>UB: Acceso denegado (403)

    note over UA,UB: Prueba cruzada entre sesiones

    UA->>WEB: Envía payload XSS almacenado (en campo editable)
    WEB-->>API: Payload guardado en base de datos

    UB->>WEB: Visualiza recurso con XSS inyectado
    WEB-->>UB: Carga de página comprometida (ejecuta XSS)
    UB->>API: Script XSS roba token de administrador

    note over WEB,API: Explotación de XSS para escalar privilegios

Generalmente, se emplean dos navegadores para mantener ambas sesiones activas, o bien se realiza el proceso de cierre y apertura de sesión entre cuentas para efectuar la validación correspondiente.

El propósito de este artículo reside en presentar una metodología para utilizar exclusivamente el navegador Firefox, permitiendo la apertura simultánea de múltiples sesiones en un mismo sitio web.

Como tener múltiples sesiones

Con el fin de alcanzar el objetivo propuesto, emplearemos la característica de contenedores de Mozilla Firefox, la cual permite que cada pestaña funcione como un contenedor aislado. Adicionalmente, utilizaremos la siguiente extensión para Firefox:

  • https://addons.mozilla.org/en-US/firefox/addon/container-proxy/

Tras la instalación de la extensión, nos dirigimos a las configuración del navegador y, posteriormente, a la sección de configuración de contenedores.

En este punto, suelo eliminar todos los contenedores predeterminados y a crear los míos propios. Además, selecciono la opción “Selecciona un contenedor para cada pestaña nueva”, lo que me permite asignar un contenedor específico a cada nueva pestaña al abrirla.

Luego, vamos a las configuraciones del plugin, haciendo click en su ícono desde la barra de herramientas.

En esta sección, veremos una vista similar a la anterior, que mostrará todos los contenedores generados a partir de las configuraciones. Inicialmente, nos dirigiremos a la pestaña “Proxies”.

Por defecto estará vació, por lo que procedemos a crear uno nuevo, en este caso, uno para el puerto 8080 que es el default de burpsuite.

Continuamos a la pestaña “Asignar” y asignamos un proxy a cada contenedor. En este contexto, nos centraremos únicamente en aquellos etiquetados como “User”, ya que los demás son elementos internos utilizados para mis propósitos personales.

Ahora, ya podemos abrir múltiples pestañas en el navegador y asignar un contenedor para cada una.

Abrimos burpsuite para que se inicie el proxy.

Accedimos al sitio web de Hacking Chile en ambas pestañas para la demostración.

y observamos que ambos pasan por burpsuite, ya pudiendo interceptar el tráfico de ambas pestañas.

Extra

Como complemento, es posible asignar manualmente un color distintivo a cada contenedor en Burp Suite, lo que facilita la diferenciación entre las solicitudes provenientes de distintos contenedores o sesiones. Para ello, se utilizará el plugin “Request Highlighter” de Burp Suite, disponible para descarga en la BApp Store.

Luego, en cada pestaña contenedora, agregamos una cookie para diferenciarlas. En este ejemplo yo uso la extensión EditThisCookie2, que me permite modificar las cookies desde la barra de herramientas. Pero siempre puedes modificarlas desde las herramientas de desarrollador del navegador.

  • https://addons.mozilla.org/en-US/firefox/addon/etc2/

Sesión 1

Sesión 2

Finalmente, vamos a burpsuite, buscamos las request y creamos una regla de resaltado con la extensión de burp.

Seleccionamos el contenido para generar la regla, que en este caso, es la cookie que creamos. Hacemos lo mismo con la otra.

Finalmente, cuando interactuemos con los sitios, veremos cada request con su respectivo color.

Conclusión

Con esto, podemos tener abierta dos o más sesiones en un mismo sitio, con cuentas distintas o la misma cuenta, sin la necesidad de estar abriendo o cerrando sesión a cada rato, o tener que cambiar entre navegadores.

Agradecimiento especial a la IA que me corrigió la ortografía y le dio un tono más "formal".

#BurpSuite#Tricks#Web Security
$ share_article.sh