Análisis de vulnerabilidadesHacking Web

Inyecciones sin agujas con SQLMap

Colaborador: pabloloren

Buenas a todxs,

Tras unas merecidas vacaciones he decidido volver a escribir una nueva entrada. Esta vez os mostraré la herramienta SQLMap.

SQLMap es una herramienta para la automatización de ataques SQLi, lo cual facilita bastante la tarea del auditor a la hora de buscar este tipo de vulnerabilidades y poder posteriormente explotarlas.
Está desarrollada en python y se encuentra ya instalada en distribuciones como Kali, aunque también podéis descargarla desde https://github.com/sqlmapproject/sqlmap/wiki/Usage. Es bastante completa, pero en esta publicación veremos los aspectos más básicos.

Para usar la herramienta sin necesidad de probar las comodidades que nos ofrece la Guardia Civil o Policía en uno de sus lujosos y bien acondicionados calabozos, probaremos a ejecutarla en DVWA (una plataforma de pruebas ya comentada en anteriores post como: https://fwhibbit.blogspot.com.es/2016/07/poc-evitando-filtros-anti-xss.html y https://fwhibbit.blogspot.com.es/2016/03/guia-metasploitable-2-parte-2.html).

Ejecutamos la plataforma, obtenemos la dirección IP donde se aloja y entramos en ella seleccionando el nivel intermedio.

Nos vamos a la pestaña de «SQL Injection» y probamos a introducir un número cualquiera para comprobar el funcionamiento, a la vez que obtenemos información de la Cookie generada (nos será necesaria más adelante para lanzar SQLMap).
Para obtener la Cookie abrimos el inspector del navegador y accedemos a las pestaña que puede verse en la siguiente imagen:

 

En este punto (siento por haber ido tan rápido hasta aquí, pero quería centrarme en SQLMap y no en DVWA) empezaremos con lo interesante.

Para ejecutar la herramienta utilizaremos el comando «sqlmap» en una consola con la opción «u» para introducir la URL vulnerable (habiendo introducido antes un ID en la web), con el parámetro «–cookie» insertaremos la sesión que obtuvimos con anterioridad y por último el parámetro «–dbs» para mostrar las bases de datos contenidas en la web.

El resultado será el siguiente:

A partir de aquí, se abrirá ante nosotrxs un abanico de oportunidades para obtener información.

Como era de esperar, podemos indagar un poco más buscando en las tablas de las bases de datos mediante parámetros como «-D» para seleccionar la base de datos y «–tables» para mostrar las tablas contenidas.

Obteniendo como resultado:

Ahora que nos sentimos como auténticos juankers, tras ver lo intuitivo y sencillo que es el manejo de esta herramienta tan potente, el siguiente paso no podría ser otro que mostrar las columnas de una de las tablas obtenidas con los parámetros «-T» para seleccionar la tabla y «–columns» para mostrarlas.

Por cada columna se nos facilitará información sobre el tipo de dato que contiene.

Para sacar la información de las columnas user, first_name, last_name y password, lo haremos de una forma bastante complicada. Sólo algunos juankers como yo podrán hacerlo a través de años de experiencia y estudios… Usando el parámetro «–dump»

 

Todo esto está muy bien, pero las posibilidades de SQLMap son mas variadas que los gorros de Chema Alonso. ¡No preocuparse primoh!

Algunos parámetros como «–current-user» nos dará información sobre el usuario que se está ejecutando en el servidor.

En nuestro caso, es el usuario «root».

Otra cosa que suele partir ojetes, sería ejecutar el parámetro «–file-read» para leer algo tan interesante como /etc/passwd.

 

El fichero se guardará en la ruta que nos indica: root/.sqlmap/output/192.168.1.105/files/_etc_passwd

Por último y no menos importante, siempre nos quedará para todo lo demás Mastercard y el parámetro «–help».

No olvidéis que todo esto se trata de información para utilizarla de forma responsable, profesional, académica, blah, blah, blah y debéis NO debéis utilizarlo para liarla pardísima por servidores ajenos sin un permiso correspondiente.

«La revolución empieza por casa SQLMap.»

Pablo Lorenzo.