Fuzzing con Zap

Zap, posee una gran cantidad de funcionalidades, en esta sección veremos la forma de realizar un fuzzing sobre una aplicación web para identificar inyecciones de tipo sql.

¿Que es el Fuzzing?

El fuzzing, es una técnica mediante la cual se puede comprobar la forma en la que responde, en éste caso una web application, ante el ingreso de datos aleatorios o secuenciales para para identificar directorios o archivos, detectar vulnerabilidades de inyección de código e incluso para realizar validaciones por fuerza bruta.

En el siguiente ejemplo, veremos la manera de identificar una inyección sql a través de un fuzzing a una aplicación web.

Para el siguiente ejemplo utilizaremos el target http://webscantest.com, en éste caso, he accedido mediante proxy interceptor, una vez que tenemos la url dentro de ‘Sites’ click derecho ‘Attack’ y luego ‘Spider’.

Lanzamiento de Spider

Una vez listo el spidering, vamos a buscar el directorio ‘shutterdb’, éste contiene un archivo php llamado ‘search_by_name.php’ .

Lanzamiento de Fuzz

Aquí empieza lo divertido, ya que es donde podemos configurar nuestro fuzzer a gusto. Se abrirá una ventana donde veremos el header del sitio en la parte superior y en la parte inferior tendremos que setear nuestra tool.

Configuraciones del Fuzz

Tras clickear en la zona inferior vamos a ‘add’, aqui es donde configuraremos los payloads o cargas a probar sobre el sitio. Debemos seleccionar nuevamente ‘add’ y tendremos los tipos de cargas para lanzar nuestro fuzzer.

Configuración de Payload

Vamos a ‘File Fuzzers’ seleccionamos ‘jbrofuzz’ que es otra tool de OWASP y dentro de sus opciones elegimos ‘Injection’.

Fuzzing Injection

Ahora aceptamos, damos ok y demás hasta que encontramos el ‘Start Fuzzing’.

Comenzará a comprobar uno a uno los payloads imprimiendo en pantalla la respuesta de cada uno de ellos sobre el target.

Impresion de respuesta

Como se observa, la carga ‘or’1’=’1 a respondido un ok. Si vamos al sitio web y colocamos esa secuencia de caracteres podremos ver que nos devuelve todo el contenido de la db.

Inyección SQL

Me gustaría aclarar que el ejemplo que hemos visto es el paso a paso de sólo una explotación mediante fuzzing, el descubrimiento de directorios por ejemplo se puede realizar casi de la misma manera, solo basta con configurar las opciones del fuzzer.

La intención de éste capítulo es mostrar la granularidad con la cual se puede configurar Zap, ahora bien, si colocas la el nombre del sitio en ‘URL to Attack’ y das en ‘Attack’ también hará un fuzzing, la diferencia está en la prolijidad, una cosa es atacar todo para que salten todas las alarmas y otra muy diferente es sólo atacar al punto débil.