Instructor: En esta conferencia, y en
las próximas conferencias, vamos a
hablar sobre un tipo popular de vulnerabilidades, llamado Inyecciones SQL.
Antes de comenzar a hablar sobre cómo ocurre
esto y cómo explotarlo, primero aprendamos qué es SQL.
Ahora, si está realizando una prueba de lápiz en un determinado
sitio web, es probable que este sitio web sea un poco más grande que
los sitios web más pequeños, por lo que probablemente esté utilizando una base de datos.
La mayoría de los sitios web, aparte de
los sitios web muy simples, utilizan bases de datos, las bases de datos se utilizan para
almacenar datos, por lo que almacenan nombres de usuario, contraseñas, artículos de
noticias, publicaciones de blog, imágenes.
Todo lo que sucede en el sitio web, literalmente, se
almacena en una base de datos y la aplicación web consulta la base
de datos y luego muestra los datos a usted o a
los usuarios, en la pantalla.
Cuando los usuarios hacen algo, actualizarán, eliminarán o
modificarán los datos que existen en la base de datos.
Esta interacción, entre la aplicación
web y la base de datos, ocurre usando un lenguaje llamado SQL.
Entonces, déjenme mostrarles lo que quiero decir con base
de datos, esto es solo
un ejemplo, no
estoy pirateando nada, literalmente solo voy a iniciar sesión
en la base de datos que está instalada en nuestra máquina Metasploitable,
y luego estamos solo veré lo que se ha instalado en él.
Entonces, no estoy hackeando, no hay nada aquí, no hay
nada lujoso, solo estoy ingresando a mi SQL.
Y luego pongo que el nombre
de usuario es root y el Metasploitable no usa una contraseña
para la raíz, lo cual es realmente malo, pero obviamente es un sistema vulnerable.
Entonces, solo voy a iniciar sesión y no estoy
pirateando nada, no estoy haciendo
ninguna inyección de SQL, este es solo el
terminal para MySQL, que la aplicación web usaría para interactuar con
la base de datos.
Entonces, solo estoy tratando de mostrarle lo que quiero decir con
bases de datos y lo que está guardado allí.
Por lo tanto, lo
primero que haré es escribir las bases de datos show.
Y eso nos mostrará las bases de datos
que existen en nuestro servidor de destino y puede ver que
tenemos el esquema de información, esta es una base
de datos predeterminada que contiene información
predeterminada, información sobre todas las demás bases de datos.
Entonces, este se instala por defecto, cuando
instala MySQL.
El resto se ha instalado para cada aplicación web.
Entonces, podemos ver, tenemos uno para tikiwiki,
tenemos uno para owas10, y ese es para este Mutilllidae.
También tenemos uno llamado mysql, tenemos uno
llamado metasploit y otro para
dvwa, que es el que hemos estado usando,
la aplicación web.
Entonces, puede ver que
para cada aplicación web tenemos una base de
datos y esta base de datos contiene la
información que utiliza esa aplicación web.
Déjame mostrarte lo
que hay allí, así que usaré la base de datos owas10.
Así que este es, una vez más, este es el
de Mutilldae, para esta aplicación web.
Y podemos ver la tabla, por lo que cada base
de datos tiene una tabla, tablas, y en las tablas hay información.
Entonces, voy a decir "mostrar tablas" para ver las tablas
que tenemos.
Y puede ver, tenemos una
tabla para cuentas, por lo que puede suponer que esta tabla contiene
información sobre los nombres de usuario, contraseñas e información sobre los usuarios.
Tenemos una tabla para blogs, por lo que probablemente tenga las entradas del blog,
las publicaciones y los comentarios allí.
Puede ver datos capturados, tarjetas de crédito, por lo que
hay una tabla que contiene tarjetas de crédito.
Ahora, esto es enorme para los sitios web de
compras, en realidad tendrían una tabla de tarjetas de
crédito y la información para las tarjetas
de crédito se almacenaría allí.
Básicamente, la base de datos almacenará todo,
todos los datos que se utilizan en el sitio web.
Porque no se almacenan en archivos, no es eficiente.
Entonces, echemos un vistazo a las cuentas y
si solo digo "seleccionar", así es exactamente cómo la aplicación
web recuperaría información de la base de datos,
seleccionaría cosas, actualizaría o eliminaría.
Entonces, estoy haciendo una declaración de selección aquí, nuevamente, esto
no es piratería, no estoy haciendo
nada, solo selecciono cosas.
Y voy a seleccionar estrella, lo que
significa todo, de las cuentas.
Apostrophe, y como podemos ver, tenemos la identificación de la cuenta, el nombre de
usuario, la contraseña y
luego la firma de la persona,
y si esa persona es un administrador.
Ahora, estas columnas dependen de la
tabla, por lo que en realidad es
la persona que diseña la base de datos, también diseña las tablas y las
columnas, y luego la aplicación web inserta los datos.
Entonces, puede ver que tenemos un
usuario llamado admin y su contraseña es adminpass.
Podemos ver que tenemos un usuario llamado adrian
y su contraseña es alguna contraseña.
Entonces, esto es solo para mostrarle cómo se ven las bases de datos, y solo para
tener una idea de ello, porque, en
los videos futuros, trataremos de explotar estas bases de
datos y tener un acceso similar a este.
Entonces, acabo de iniciar sesión con un
nombre de usuario y
una contraseña ahora, por lo general no tendrías acceso
de esta manera, solo el administrador web tendría ese acceso.
En los videos futuros, intentaremos ejecutar algunos ataques para obtener un acceso similar a
este, de modo que tengamos control total sobre
la base de datos, para que podamos
leer cosas y ver si podemos escribir
o modificar cosas. .