Modificar una Solicitud HTTP sobre la Marcha en Burp Proxy

Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá los fundamentos de la interceptación y modificación del tráfico web utilizando Burp Suite, una de las herramientas más populares para la prueba de seguridad de aplicaciones web. La capacidad de interceptar una solicitud HTTP, cambiar su contenido antes de que llegue al servidor y luego observar la respuesta es una habilidad fundamental para descubrir una amplia gama de vulnerabilidades, como la manipulación de parámetros (parameter tampering) y referencias directas inseguras a objetos (insecure direct object references).

Utilizará Burp Proxy para capturar una solicitud de su navegador, modificar un parámetro de URL sobre la marcha y reenviarla a una aplicación web simple que se ejecuta localmente. Este ejercicio práctico demostrará cómo se puede utilizar un proxy para manipular la comunicación entre un cliente y un servidor.

Habilitar el Modo de Interceptación en la Pestaña Proxy

En este paso, iniciará Burp Suite y habilitará su función principal para interceptar tráfico. El Burp Proxy actúa como un intermediario (man-in-the-middle) entre su navegador y el servidor web de destino, permitiéndole ver y modificar todo el tráfico que pasa por él.

Primero, abra el lanzador de aplicaciones en la esquina superior izquierda del escritorio e inicie Burp Suite.

  1. Haga clic en "Temporary project" y luego en "Next".
  2. Seleccione "Use Burp defaults" y haga clic en "Start Burp".

Una vez que Burp Suite esté abierto, navegue a la pestaña Proxy. Aquí es donde controlará la interceptación del tráfico HTTP.

Dentro de la pestaña Proxy, verá varias sub-pestañas. Asegúrese de estar en la sub-pestaña Intercept. Aquí encontrará un botón que activa y desactiva la interceptación. Por defecto, puede estar desactivado.

Haga clic en el botón que dice "Intercept is off" para habilitarlo. El texto del botón cambiará a "Intercept is on" y aparecerá presionado.

Ahora, Burp Proxy está esperando activamente para capturar la próxima solicitud HTTP realizada por el navegador preconfigurado en este entorno de laboratorio.

En este paso, generará una solicitud HTTP desde el navegador web y la capturará en Burp Suite. Dado que el modo de interceptación está activado, Burp retendrá la solicitud, impidiendo que llegue al servidor hasta que usted decida qué hacer con ella.

Abra el navegador web proporcionado en el entorno de laboratorio. El navegador ya está configurado para enviar su tráfico a través del Burp Proxy que se ejecuta en 127.0.0.1:8080.

En la barra de direcciones del navegador, navegue a la aplicación web simple que fue iniciada por el script de configuración. Escriba la siguiente URL y presione Enter:

http://127.0.0.1:5000/search?q=books

Notará que la pestaña del navegador muestra un icono de carga y la página no se carga. Este es el comportamiento esperado. Indica que Burp Proxy ha interceptado con éxito la solicitud y está esperando su acción.

Ahora, vuelva a la ventana de Burp Suite. En la pestaña Proxy -> Intercept, verá el contenido sin procesar de la solicitud HTTP que su navegador acaba de enviar.

GET /search?q=books HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
...

Ahora ha capturado con éxito una solicitud HTTP antes de que llegara a su destino.

Cambiar el Valor de un Parámetro en la Vista 'Raw' de la Solicitud

En este paso, modificará la solicitud HTTP interceptada. Este es el núcleo de la manipulación de solicitudes sobre la marcha. Puede cambiar cualquier parte de la solicitud, incluido el método, la ruta, las cabeceras o el cuerpo. Para este laboratorio, cambiará un parámetro de la URL.

Con la solicitud mostrada en la pestaña Proxy -> Intercept, asegúrese de estar en la vista Raw. Esta vista muestra el texto plano de la solicitud, lo que facilita su edición directa.

Localice la primera línea de la solicitud:

GET /search?q=books HTTP/1.1

La parte q=books es un parámetro de la URL. La aplicación del lado del servidor utiliza el valor de q (que actualmente es books) para generar su respuesta.

Ahora, edite este valor directamente en el área de texto. Haga clic en la vista Raw y cambie books por dvds.

La primera línea modificada debería verse ahora así:

GET /search?q=dvds HTTP/1.1

Ha alterado con éxito los datos de la solicitud en tránsito. El navegador no es consciente de este cambio; todavía cree que solicitó la página con q=books. El servidor aún no ha recibido ninguna solicitud.

Reenviar la Solicitud Modificada

En este paso, liberará la solicitud modificada desde Burp Proxy y permitirá que continúe hacia el servidor web.

Después de editar la solicitud en la pestaña Intercept, necesita decidir qué hacer con ella. Tiene tres opciones principales a través de los botones en la parte superior de la vista:

  • Forward: Envía la solicitud (en su estado actual, posiblemente modificado) al servidor.
  • Drop: Descarta la solicitud por completo. El navegador eventualmente agotará el tiempo de espera.
  • Action: Proporciona un menú de otras acciones, como enviar la solicitud a otras herramientas de Burp.

Para enviar su solicitud modificada al servidor, haga clic en el botón Forward.

Después de reenviar la solicitud, Burp mostrará la respuesta del servidor en la misma pestaña. Puede reenviar esta respuesta al navegador haciendo clic en Forward nuevamente.

Para evitar interceptar solicitudes posteriores (como la de un favicon), es una buena práctica desactivar la interceptación después de haber terminado con la solicitud que le interesa. Haga clic en el botón "Intercept is on" para cambiarlo de nuevo a "Intercept is off". Esto permite que todo el demás tráfico fluya libremente.

Observar la Respuesta del Servidor a la Solicitud Modificada

En este paso, observará el resultado de su acción tanto en el navegador como en el historial de Burp Suite. Esto confirma que el servidor procesó los datos modificados.

Primero, vuelva a su navegador web. La página, que anteriormente estaba cargando, ahora debería estar completamente cargada. Observe el contenido que se muestra en la página. Debería leer:

You searched for: dvds

Esto confirma que el servidor recibió y procesó el valor del parámetro modificado (dvds), no el original (books). Ha logrado engañar al servidor para que muestre contenido diferente.

A continuación, vuelva a Burp Suite para una vista más detallada. Haga clic en la pestaña Proxy y luego en la subpestaña HTTP history. Esta pestaña registra todas las solicitudes y respuestas que han pasado por el proxy. Debería ver una entrada para GET /search?q=dvds. Haga clic en ella para ver la solicitud completa que envió y la respuesta correspondiente que devolvió el servidor, proporcionando un registro completo de la interacción.

Este simple ejercicio demuestra un concepto poderoso: nunca confíe en los datos que provienen del lado del cliente, ya que pueden ser fácilmente manipulados por un atacante que utilice una herramienta proxy como Burp Suite.

Resumen

En este laboratorio, ha aprendido la habilidad esencial de modificar una solicitud HTTP sobre la marcha utilizando Burp Proxy.

Ha logrado con éxito:

  • Habilitar el modo de interceptación en Burp Proxy.
  • Capturar una solicitud HTTP en vivo desde un navegador.
  • Modificar un parámetro de URL en la vista de solicitud sin procesar.
  • Reenviar la solicitud manipulada al servidor web.
  • Observar que la respuesta del servidor se basó en sus datos modificados.

Esta técnica es un componente fundamental para las pruebas de seguridad de aplicaciones web, lo que le permite investigar una amplia variedad de vulnerabilidades manipulando las comunicaciones cliente-servidor.