Intercept Proxy

En este capítulo de ZAP nos enfocaremos en sus funcionalidades de intercepción por proxy.

Como ya vimos en el capitulo anterior, ZAP es una tool de pentesting de web applications y como tal tiene la funcionalidad de ser utilizado como web proxy entre otras tantas que ya iremos viendo.

Antes de que levanten ZAP, vamos a tener que hacer unas configuraciones en nuestro navegador, lo haremos en Firefox, pero pueden utilizar el de su eleccion, en todos es bastante similar la configuracion.

Preferences -> advanced -> network -> Settings

Si quieren acortar camino, abran una pestaña y peguen: about:preferences#advanced luego solo ir a settings o configuración y verán el panel de ‘configuración de conexiones’.

En éste panel, debemos seleccionar ‘Manual proxy configuration’ y en los campos de HTTP, SSL y FTP Proxy debemos colocar nuestra dirección de localhost 127.0.0.1 y puerto 8080. En el campo ‘No Proxy for’ debemos declarar localhost y 127.0.0.1:8080 separados por una coma (,) como se ve en la imagen.

Configuración en Firefox

También se puede usar la configuración que se realiza con FoxyProxy como se realizo en BurpSuite es aplicable con Zap.

Ahora, sólo basta con ingresar a un website para que Zap comience a trabajar.

Paneles y principales características

Tras inicializar la herramienta, accederemos a “Google Gruyere” desde el navegador que esta configurado, volvemos a zap y observamos en el panel “Sites” que ya empezó a guardar los sitios que visitamos.

Panel Sites

En la parte derecha, se observa los “Request” y los “Response” del sitio en el momento que se ha accedido.

Request y Response

Si queremos ver en detalle los Request y Response entre nuestro navegador y el nodo, podemos ir a las pestañas indicadas, desde la pestaña Response por ejemplo, logramos visualizar los values que solicita el login.

Detalles del Login

Si dado el caso, hemos recorrido varios sitios y se nos ha llenado el panel de Sites de nodos, podemos ir eliminando los que no nos interesan para tener un ambiente de trabajo más organizado y limpio. Solo basta con seleccionar las url/nodos que no nos interesan, click derecho y “delete”.

Eliminar Sitios

Desde el browser accedemos a “google-gruyere.appspot.com/875680738020/login”, un panel de login común:

Login Gruyere

Desde ZAP nos movemos por los directorios que fue relevando con sus solicitudes y respuestas en el panel de “Sites”, abajo, en “History” también se visualiza la petición por GET que se hizo al path de login, tiempo de respuesta y qué devolvió. Allí podemos filtrar por métodos de peticiones, codes, tags y alertas. Aquí vemos un 302.

Log de Peticiones

Si aplicamos los filtros “GET + 200” que se ven en la imagen

Filtros

Sólo veremos los GET que nos hayan respondido un 200 OK:

Resultados del Filtrado

Usando break points

Hasta aquí utilizamos zap para que intercepte todo sitio por el que nos movamos, ahora bien, al utilizar break points tendremos el control de stopear o fowardear las peticiones entre browser y server.

Si hacemos click derecho sobre el target y luego seleccionamos Break

Selección de Break Se abrirá una ventana en la cual definimos la url y agregamos el break.

Adición de BreakPoint

Para comprobar si hemos colocado bien el break point vamos a la pestaña que se encuentra abajo con el mismo nombre:

BreakPoint Menu

Al ingresar al sitio desde el browser y colocar las credenciales de autenticación veremos que queda cargando y no resolverá hasta que forwardemos la petición desde el Zap.

Inicio de Sesion Gruyere

Al ir a zap, vemos que ha interceptado el envío de las credenciales

Vista de Credenciales

Para que la petición siga su camino debemos debemos hacer click en el icono de play.

Enviar petición

La pantalla que nos muestra la pestaña “Break” se pondrá en blanco y la petición será enviada.