💡Interceptar respuestas
En algunos casos, es posible que necesitemos interceptar las respuestas HTTP del servidor antes de que lleguen al navegador. Esto puede resultar útil cuando queremos cambiar el aspecto de una página web específica, como habilitar determinados campos deshabilitados o mostrar determinados campos ocultos, lo que puede ayudarnos en nuestras actividades de pruebas de penetración.
Entonces, veamos cómo podemos lograr esto con el ejercicio que probamos en la sección anterior.
En nuestro ejercicio anterior, el campo IP
solo nos permitía ingresar valores numéricos. Si interceptamos la respuesta antes de que llegue a nuestro navegador, podemos editarla para que acepte cualquier valor, lo que nos permitiría ingresar directamente el payload que usamos la última vez.
Interceptar respuestas
Burp Suite
En Burp, podemos habilitar la interceptación de respuestas yendo a ( Proxy>Options
) y habilitando Intercept Response
en Intercept Server Responses
:
Después de eso, podemos habilitar la interceptación de solicitudes una vez más y actualizar la página con [ CTRL+SHIFT+R
] en nuestro navegador (para forzar una actualización completa). Cuando volvamos a Burp, deberíamos ver la solicitud interceptada y podemos hacer clic en forward
. Una vez que reenviemos la solicitud, veremos nuestra respuesta interceptada:
Intentemos cambiar la línea 27 type="number"
a type="text"
, lo que debería permitirnos escribir cualquier valor que queramos. También cambiaremos a maxlength="3"
a maxlength="100"
para poder ingresar datos más largos:
Ahora, una vez que hagamos clic nuevamente en forward
, podremos regresar a Firefox para examinar la respuesta editada:
Como podemos ver, podemos cambiar la forma en que el navegador muestra la página y ahora podemos ingresar cualquier valor que queramos. Podemos usar la misma técnica para habilitar de forma persistente cualquier botón HTML deshabilitado modificando su código HTML.
ZAP
Vamos a intentar ver cómo podemos hacer lo mismo con ZAP. Como vimos en la sección anterior, cuando nuestras peticiones son interceptadas por ZAP, podemos hacer clic en Step
, y enviará la petición e interceptará automáticamente la respuesta:
Una vez que hagamos los mismos cambios que hicimos anteriormente y hagamos clic en Continue
, veremos que también podemos usar cualquier valor de entrada:
Sin embargo, ZAP HUD también tiene otra característica poderosa que nos puede ayudar en casos como este. Si bien en muchas ocasiones podemos necesitar interceptar la respuesta para realizar cambios personalizados, si todo lo que queremos es habilitar los campos de entrada deshabilitados o mostrar los campos de entrada ocultos, entonces podemos hacer clic en el tercer botón de la izquierda (el ícono de la bombilla), y habilitará/mostrará estos campos sin que tengamos que interceptar la respuesta o actualizar la página.
Por ejemplo, la siguiente aplicación web tiene el campo de entrada IP
deshabilitado:
En estos casos, podemos hacer clic en el botón Show/Enable
y se habilitará para nosotros y podremos interactuar con él para agregar nuestra entrada:
De manera similar, podemos usar esta función para mostrar todos los campos o botones ocultos. Burp
también tiene una función similar, que podemos habilitar en Proxy>Options>Response Modification
y luego seleccionar una de las opciones, como Unhide hidden form fields
.
Otra característica similar es el botón Comments
, que indicará las posiciones donde hay comentarios HTML que normalmente solo son visibles en el código fuente. Podemos hacer clic en el botón +
en el panel izquierdo y seleccionar Comments
, y una vez que hagamos clic en él se deberían mostrar los indicadores. Por ejemplo, la siguiente captura de pantalla muestra un indicador para una posición que tiene un comentario, y al pasar el cursor sobre él se muestra el contenido del comentario:
Poder modificar el aspecto de la página web nos facilita mucho la realización de pruebas de penetración de aplicaciones web en determinados escenarios en lugar de tener que enviar nuestra entrada a través de una petición interceptada. A continuación, veremos cómo podemos automatizar este proceso para modificar nuestros cambios en la respuesta de forma automática y no tener que seguir interceptando y cambiando manualmente las respuestas.
Última actualización