martes, 1 de octubre de 2013

BackBox 3 - Iniciación al Pentesting (Parte 9)


Identificando vulnerabilidades.

El primer paso de todos es revisar todas las vulnerabilidades e identificar de que tipo de vulnerabilidad se trata (SQL, XSS, DoDS,...)

Examinando el informe de vulnerabilidades de OWASP ZAP tomaremos como ejemplo una de las alertas con mayor criticidad.
Figura 1: Alerta grave de SQL injection.

Se trata de una vulnerabilidad SQL injection UNION sobre MySQL.
Si esta vulnerabilidad fuera explotable estaríamos comprometiendo el sistema de la BBDD y posiblemente seríamos capaces de alterar el contenido tanto de la BBDD como de la página web a la que atacamos. Lo iremos viendo poco a poco.

Para comprobar si existe un fallo de seguridad SQL injection vamos a coger la URL y a modificarla para ver que nos devuelve el servidor.


URL original:

http://sitioweb.com/actualidad/evento.php?id=110


URL modificada con una comilla al final (')

http://sitioweb.com/actualidad/evento.php?id=110'


El resultado es un claro error de sintaxis, esto es básicamente, en la gran mayoría de los casos, nos permitirá extraer información de la BBDD. Y gracias a esta pequeña comprobación podemos empezar a lanzar nuestro ataque.
Figura 2: Error de sintaxis SQL. Posible SQL injection.

Vulnerando la BBDD y extrayendo información.

Existen numerosas herramientas que nos ayudarán a lanzar un ataque sobre la BBDD. Al igual que sucedía con la búsqueda de vulnerabilidades, para explotar un fallo de SQL injection utilizaremos alguna herramienta que nos permita automatizar el ataque.

Para ello utilizamos SQLmap, que es sin duda una de las herramientas más potentes que existe para realizar ataques de SQLinjection, y que además viene por defecto instalada en Backbox.

Esta herramienta contiene numerosos script, con la configuración necesaria para poder lanzar un ataque sobre cualquier BBDD que sea vulnerable.

Al acceder por primera a SQLmap y añadiendo el parámetro -h (#sqlmap -h), se mostrará alguna de las configuraciones más básicas y utilizadas.
Figura 3: Opciones de configuración (básicas) de SQLmap
Algunas parámetros que debemos tener en cuenta son (por ejemplo) Level y Risk.

Existen ocasiones que al intentar extraer información no obtendremos nada por parte del servidor, e iremos aumentando el grado de Level y Risk.

Por otra parte, gracias a la gran capacidad de sqlmap, con el comando DUMP se puede llegar a realizar un volcado de la BBDD a tu máquina.

Se podrías decir que utilizar SQLmap es fácil, o al menos intuitivo, ya que si se introduce algún parámetro mal la herramienta nos dirá que es lo que estamos haciendo mal, y nos dará algún tipo de solución.