Modificar una Respuesta HTTP sobre la Marcha en Burp Proxy

Beginner
Practicar Ahora

Introducción

Burp Suite es una potente plataforma para realizar pruebas de seguridad de aplicaciones web. Uno de sus componentes principales es Burp Proxy, que actúa como un intermediario (man-in-the-middle) entre su navegador y el servidor web de destino. Esto le permite interceptar, inspeccionar y modificar el tráfico en bruto que pasa en ambas direcciones.

Si bien interceptar solicitudes es una tarea común, interceptar y modificar respuestas es igualmente importante para las pruebas de seguridad. Le permite probar cómo la aplicación del lado del cliente maneja datos inesperados o manipulados del servidor.

En este laboratorio, aprenderá a configurar Burp Proxy para interceptar respuestas del servidor y modificar el contenido HTML de una página web antes de que se muestre en su navegador. Utilizaremos un servidor web local simple para esta demostración.

En este paso, configurará Burp Suite para habilitar la interceptación de respuestas del servidor web. Por defecto, Burp Proxy solo intercepta las solicitudes salientes del navegador.

Primero, necesita iniciar Burp Suite. Puede encontrarlo en el menú de aplicaciones o buscándolo.

Una vez que Burp Suite esté abierto:

  1. Haga clic en la pestaña Proxy en la parte superior de la ventana.
  2. Dentro de la pestaña Proxy, haga clic en la sub-pestaña Options.
  3. Desplácese por las opciones hasta encontrar la sección titulada Intercept Server Responses.

Esta sección contiene la configuración que controla si y cómo Burp Proxy intercepta las respuestas HTTP entrantes. Ahora ha localizado el área de configuración necesaria para el siguiente paso.

Habilitar la Casilla 'Intercept responses based on the following rules'

En este paso, activará la función de interceptación de respuestas.

En la sección Intercept Server Responses que localizó en el paso anterior, verá una casilla de verificación.

  1. Haga clic en la casilla junto a la etiqueta Intercept responses based on the following rules.

Una vez que marque esta casilla, Burp Proxy se configurará para interceptar las respuestas del servidor que coincidan con las reglas definidas debajo de ella. La regla predeterminada, Is a response to a request that was intercepted, se agrega automáticamente y es perfecta para nuestras necesidades. Esta regla le indica a Burp que solo intercepte una respuesta si su solicitud correspondiente también fue interceptada por el proxy. Esto evita que Burp se detenga en cada respuesta individual, como las de imágenes o scripts en segundo plano, y se centre solo en el tráfico que está inspeccionando activamente.

Interceptar y Reenviar una Solicitud

En este paso, utilizará el navegador integrado de Burp para realizar una solicitud a nuestro servidor web local e interceptarla.

  1. Navegue a la sub-pestaña Proxy > Intercept.
  2. Asegúrese de que el botón diga Intercept is on. Si dice "Intercept is off", haga clic en él para habilitar la interceptación.
  3. Haga clic en el botón Open Browser. Se abrirá una nueva ventana del navegador Chromium, preconfigurada para usar el Proxy de Burp.
  4. En la barra de direcciones del navegador, escriba http://127.0.0.1:8000 y presione Enter.

El navegador parecerá estar cargando indefinidamente. Esto se debe a que Burp ha interceptado la solicitud HTTP. Vuelva a la ventana de Burp Suite. En la pestaña Proxy > Intercept, verá la solicitud HTTP sin procesar:

GET / HTTP/1.1
Host: 127.0.0.1:8000
... (other headers)

Esta es la solicitud de su navegador al servidor local. Para permitir que continúe hacia el servidor, haga clic en el botón Forward. Después de reenviar la solicitud, Burp esperará a interceptar la respuesta que regresa del servidor.

Modificar el Cuerpo HTML en la Respuesta Interceptada

En este paso, editará el contenido de la respuesta HTTP antes de que se envíe al navegador.

Debido a que habilitó la interceptación de respuestas y reenvió la solicitud en el paso anterior, la pestaña Proxy > Intercept ahora contiene la respuesta del servidor. Se verá algo así:

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.6
Date: ...
Content-type: text/html
Content-Length: ...

<h1>Welcome to the Original Page!</h1><p>This is the content you will modify.</p>

El área de texto principal es editable. Aquí es donde puede modificar la respuesta sobre la marcha.

  1. En el área de texto del cuerpo de la respuesta, busque la línea <h1>Welcome to the Original Page!</h1>.
  2. Cambie el texto a <h1>Welcome to the Modified Page!</h1>.
  3. También puede cambiar el texto del párrafo si lo desea, por ejemplo, a <p>This content has been changed by Burp Proxy.</p>.

Ahora ha alterado la respuesta del servidor. Todavía está retenida por Burp Proxy y aún no ha llegado al navegador.

En este paso final, enviará la respuesta modificada al navegador y verá el resultado.

La respuesta modificada todavía está esperando en la pestaña Proxy > Intercept.

  1. Haga clic en el botón Forward una última vez. Esto liberará la respuesta y enviará su versión modificada al navegador.
  2. Vuelva a la ventana del Navegador Burp que se estaba cargando anteriormente.

La página ahora terminará de cargar, pero en lugar del contenido original, mostrará el texto que ingresó. Debería ver:

Welcome to the Modified Page!
This content has been changed by Burp Proxy.

¡Felicitaciones! Ha interceptado con éxito una respuesta HTTP, ha modificado su contenido en tránsito y ha observado el cambio en el navegador. Esto demuestra una capacidad fundamental para las pruebas de seguridad de aplicaciones web. Ahora puede desactivar la interceptación haciendo clic en el botón "Intercept is on".

Resumen

En este laboratorio, adquirió experiencia práctica con una característica clave de Burp Suite. Ha aprendido a:

  • Configurar Burp Proxy para interceptar respuestas del servidor, una característica que está deshabilitada por defecto.
  • Seguir el flujo de trabajo de interceptar una solicitud, reenviarla y luego capturar la respuesta correspondiente.
  • Modificar el cuerpo de una respuesta HTTP en tiempo real antes de que llegue al navegador.
  • Observar el impacto directo de la modificación de la respuesta en la página web renderizada.

Esta técnica es fundamental en la seguridad web para probar cómo el código front-end de una aplicación web maneja datos inesperados o maliciosos del servidor, lo que potencialmente podría descubrir vulnerabilidades como Cross-Site Scripting (XSS) o control de acceso roto.