Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
-
Upload
francisco-medina -
Category
Education
-
view
1.350 -
download
9
Transcript of Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 1
Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux Antecedentes SQL Injection (SQLi) es el ataque vía web que aprovecha errores en la validación de datos introducidos por el usuario, y que permiten a un atacante, tener control de cierta aplicación. El origen de la vulnerabilidad radica en la incorrecta revisión y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro. Kali Linux es una distribución de Linux avanzada para pruebas de penetración y auditorías de seguridad. Es una completa re-‐construcción de BackTrack Linux que se adhiere completamente a los estándares de desarrollo de Debian. SQLmap es una herramienta escrita en Python que se encarga de realizar peticiones a los parámetros de una URL que se le indiquen, ya sea mediante una petición GET o POST buscando que la aplicación sea vulnerable a una posible SQL Injection y poder explotarla. Es capaz de explotar todo tipo de SQLi como union-‐base, time-‐base-‐blind, base-‐blind-‐injection, heavy-‐queries entre otros. Requerimientos Equipo de cómputo con el sistema operativo Kali Linux correctamente configurado para tener acceso a la Internet. Servidor web objetivo cuya dirección IP será proporcionada por el instructor. Para el caso de los ejemplos mostrados en este documento se usará la dirección IP 10.211.55.15 la cual deberá ser reemplazada por la indicada por el instructor.
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 2
Instrucciones
1. Inicia tu equipo de cómputo con el sistema operativo Kali Linux y configura los parámetros de red para tener acceso a la Internet.
2. Abre una terminal usando el ícono , ubicado en el panel superior.
3. Ejecuta el siguiente comando en la terminal (Recuerda cambiar la dirección IP por la del servidor web objetivo indicada por el instructor): sqlmap -‐u "http://10.211.55.15/cat.php?id=3" -‐-‐dbs
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 3
La URL /cat.php?id=3 fue obtenida por el escáner de vulnerabilidades web VEGA en la Actividad No. 1.10: Análisis de vulnerabilidades con VEGA en Kali Linux.
4. SQLmap tratará de identificar el manejador de base de datos utilizado por la aplicación web ejecutándose en el servidor web objetivo. En este caso determina que se esta utilizando un servidor MySQL. Presionar la tecla Y y dar Enter.
5. En el paso siguiente, SQLmap nos pregunta si deseamos incluir todas las pruebas para MySQL, tecleamos Enter para continuar.
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 4
6. SQLmap identifica que la variable ‘id’ usada por la aplicación web es
vulnerable a SQL Injection. Tecleamos Enter para indicar que no queremos probar otra variable. En este momento SQLmap realiza el ataque de SQL Injection y logra determinar el sistema operativo del servidor web objetivo, la versión del servidor web empleado, la versión del manejador de base de datos MySQL en ejecución y nos muestra las dos bases de datos disponibles en el servidor.
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 5
7. Una vez obtenido el nombre de las bases de datos disponibles en el servidor,
vamos a indicar a SQLmap que obtenga las tablas que conforman la base de datos photoblog, para ellos ejecutamos el siguiente comando: sqlmap -‐u "http://10.211.55.15/cat.php?id=3" -‐D photoblog -‐-‐tables Podemos observar que la base de datos photoblog tiene tres tablas:
• categories • pictures • users
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 6
8. Una vez identificadas las tablas, podemos inferir que las credenciales de acceso
a la aplicación se encuentran en la tabla users. Para realizar una consulta y mostrar el contenido de dicha tabla, ejecutamos el siguiente comando: sqlmap -‐u "http://10.211.55.15/cat.php?id=3" -‐D photoblog -‐T users -‐-‐columns
El resultado de la ejecución del comando, nos permite conocer los campos de la tabla user dentro de la base de datos photoblog.
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 7
9. Conociendo el nombre de la columnas de la tabla users, es posible hacer una consulta para obtener el contenido de la tabla. Para ellos tecleamos el siguiente comando: sqlmap -‐u "http://10.211.55.15/cat.php?id=3" -‐D photoblog -‐T users -‐C login,password -‐-‐dump
10. SQLmap logra identificar un campo cifrado que contiene las contraseñas de las cuentas de la tabla users. Presionamos la tecla Y y Enter.
11. SQLmap permite intentar obtener las contraseñas usando un diccionarios,
para utilizarlo presionamos la tecla Enter.
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 8
12. El siguiente paso consiste en indicar la ruta al diccionario a utilizar, presionamos la tecla Enter para utilizar el diccionario por Default incluido en SQLmap.
13. A continuación, SQLmap nos pregunta si deseamos usar prefijos comúnmente utilizados en las contraseñas. Presionamos la tecla Y y después Enter para indicar que SI queremos usar los prefijos.
14. Terminado el proceso, SQLmap obtiene el nombre de usuario y la contraseña almacenada en la tabla users de la base de datos photoblog.
Universidad Nacional Autónoma de México Facultad de Contaduría y Administración Diplomado Diseño, Construcción y Administración de Redes de Datos Módulo 6. Seguridad de Bases de Datos
Elaboró: Francisco Medina López 9
15. Introducimos los datos obtenidos en la aplicación web photoblog desde un
navegador web.