100% encontró este documento útil (1 voto)
405 vistas85 páginas

Curso Ciberseguridad: Pentesting y Vulnerabilidades

Este documento presenta las instrucciones para instalar y configurar el entorno Juice Shop para realizar pruebas de hacking web. Explica cómo instalar Node.js, descargar el archivo de Juice Shop y ejecutarlo localmente para practicar la detección y explotación de vulnerabilidades.

Cargado por

QueTeDenPolCuloo
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
100% encontró este documento útil (1 voto)
405 vistas85 páginas

Curso Ciberseguridad: Pentesting y Vulnerabilidades

Este documento presenta las instrucciones para instalar y configurar el entorno Juice Shop para realizar pruebas de hacking web. Explica cómo instalar Node.js, descargar el archivo de Juice Shop y ejecutarlo localmente para practicar la detección y explotación de vulnerabilidades.

Cargado por

QueTeDenPolCuloo
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

CURSO ONLINE DE

CIBERSEGURIDAD
Especialidad Administración de
Sistemas de Ciberseguridad

Taller 1
Unidad 5. Seguridad en
administración de sistemas

1
Contenidos

1 PENTESTING WEB 4

2
INSTALACIÓN Y CONFIGURACIÓN DE 6
JUICE SHOP

VULNERABILIDAD DIRECTORY 23
3
TRAVERSAL

4 ENUNCIADO EJERCICIO PRÁCTICO 1 27

5 SOLUCIONARIO EJERCICIO PRÁCTICO 1 29

Unidad 1
Introducción a la tecnología
Contenidos
VULNERABILIDAD FALLO DE 33
6
AUTENTICACIÓN E IDENTIFICACIÓN

7 ENUNCIADO EJERCICIO PRÁCTICO 2 58

8 SOLUCIONARIO EJERCICIO PRÁCTICO 2 60

9 VULNERABILIDAD INYECCIÓN XSS 70

10 ENUNCIADO EJERCICIO PRÁCTICO 3 77

11 SOLUCIONARIO EJERCICIO PRÁCTICO 3 79

Unidad 1

Duración total del taller: 3 horas Introducción a la tecnología


PENTESTING WEB 1

Unidad 1
Introducción a la tecnología
4
1 PENTESTING WEB

En esta práctica realizarás la instalación del entorno de hacking Juice shop, una máquina creada para practicar y
realizar pruebas de ataques a páginas web.

Unidad 5
Taller 1
5
INSTALACIÓN Y
CONFIGURACIÓN
2
DE JUICE SHOP

Unidad 1
Introducción a la tecnología
6
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Descarga el entorno de Juice Shop en la máquina Kali Linux. Lo más recomendable es hacerlo utilizando [Link].
▪ Juice Shop funciona con diferentes versiones de [Link], por lo que instalarás la versión más reciente ([Link]
vs16).
▪ Para ello, primero deberás abrir la máquina virtual Kali Linux.
▪ Después, deberás instalar Node Version Manager (nvm), un script bash creado para administrar múltiples
versiones de [Link] y no saturar el sistema operativo con paquetes innecesarios.
• Abre una terminal en la máquina Kali Linux y descarga el siguiente script con el comando desde Kali: curl -o-
[Link] | bash.

Unidad 5
Taller 1
7
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

Ilustración 1: Ubicación del botón de terminal Kali Linux.

Ilustración 2: Comando curl -o- [Link] | bash.

Unidad 5
Taller 1
8
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

Ilustración 3: Ejecución del comando curl -o-


[Link] | bash.

Unidad 5
Taller 1
9
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Reinicia el terminal para aplicar los cambios realizados por el script. A continuación, verifica la versión instalada de
NVM y después ya puedes instalar la última versión de [Link]
• Utiliza el siguiente comando para verificar la versión instalada: nvm -v

Ilustración 4: Versión instalada de NMV.

Unidad 5
Taller 1
10
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Utiliza el siguiente comando para instalar la última versión: nvm install –lts

Ilustración 5: Instalación de la última versión de [Link]

Unidad 5
Taller 1
11
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Utiliza el siguiente comando para verificar la última versión instalada actualizada: node --version

Ilustración 6: Última versión instalada de [Link] actualizada.

Unidad 5
Taller 1
12
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Una vez configurado lo anterior, instala el entorno Juice Shop. Para ello, accede al enlace.
▪ Haz clic en la carpeta Files, donde podrás descargar la última versión.

Ilustración 7: Ubicación de la carpeta Files en Juice shop.

Unidad 5
Taller 1
13
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

▪ Identifica el sistema operativo que vas a utilizar y qué versión de [Link] dispones.

Ilustración 8: Búsqueda de versiones de [Link].

Unidad 5
Taller 1
14
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• En este caso, descarga la versión para Linux con la versión 16 de [Link] anterior. Aunque la versión de Juicy Shop,
según la imagen, es la 14, podrás ver la versión de [Link] dentro de cada una de las carpetas, como se muestra en
la imagen siguiente. Si quieres emplearlo en un sistema operativo diferente al Kali Linux de la máquina virtual,
descarga la opción adecuada.

Ilustración 9: Versión para Linux con la versión 16 de [Link].

Unidad 5
Taller 1
15
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

Ilustración 10: Descarga de Juicy Shop 14.1.1 compatible con Node16.


Unidad 5
Taller 1
16
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Una vez completada la descarga, se abrirá una ventana emergente en la que deberás seleccionar la opción Save File.
Pulsa en OK.

Ilustración 11: Opción de guardar seleccionada.


Unidad 5
Taller 1
17
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• A no ser que hayas indicado otra ruta, el archivo se habrá almacenado por defecto en el directorio «Descargas». En
nuestro caso, lo hemos dejado en «Descargas», sin embargo, lo conveniente es que muevas el archivo a otro
directorio, donde estés almacenando la información de este curso. Abre una terminal en la máquina Kali Linux y
accede a la carpeta donde hayas dejado el archivo, como hemos comentado, en nuestro caso «Descargas».

Ilustración 12: Acceso a la carpeta «Descargas» en Kali Linux.

Unidad 5
Taller 1
18
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Dentro de la carpeta, descomprime el archivo antes descargado que tiene una extensión .tgz. Se descomprime
utilizando el comando tar -xzf juice-shop-14.1.1_node16_linux_x64.tgz

Ilustración 13: Comando tar -xzf juice-shop-14.1.1_node16_linux_x64.tgz.

Unidad 5
Taller 1
19
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Tras completar la descarga, accede a la carpeta de Juice shop para ejecutar esta herramienta.

Ilustración 14: Carpeta de Juice Shop.

Unidad 5
Taller 1
20
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• Para ejecutar el entorno, utiliza el comando npm start

Ilustración 15: Ejecución del comando npm start. Unidad 5


Taller 1
21
2 INSTALACIÓN Y CONFIGURACIÓN DE JUICE SHOP

• A continuación, se notificará un mensaje que indica que el servidor está escuchando en el puerto 3000. Abre el
navegador con la IP del localhost ([Link]) y el puerto anteriormente mencionado (3000).

Ilustración 16: IP del localhost ([Link]) y el puerto 3000 en la barra del navegador.

Unidad 5
Taller 1
22
VULNERABILIDAD
DIRECTORY
3
TRAVERSAL

Unidad 1
Introducción a la tecnología
23
3 VULNERABILIDAD DIRECTORY TRAVERSAL

Un directory traversal o path traversal consiste en explotar una vulnerabilidad que ocurre cuando no existe suficiente
seguridad en cuanto a la validación de un usuario, permitiéndole acceder a cualquier tipo de directorio sin ningún control.
La finalidad de este ataque es acceder a un archivo al que no se debería poder acceder o no debería ser accesible y se
basa en la falta de seguridad en el código o mala configuración.
En este caso, lanzarás la herramienta Dirbuster, que funciona mediante fuerza bruta, probando todos los directorios
típicos de una página web. Para ello, configurarás una terminal de la máquina Kali Linux, ejecutarás el comando dirb y
añadirás la dirección http de la aplicación Juice Shop.

Unidad 5
Taller 1
24
3 VULNERABILIDAD DIRECTORY TRAVERSAL

• Abre una terminal de Kali Linux y escribe el


comando dirb [Link]

Ilustración 17: Ejecución del comando dirb


junto con la dirección http de la Juice Shop.

Unidad 5
Taller 1
25
3 VULNERABILIDAD DIRECTORY TRAVERSAL

• Con este resultado, observa que se encuentran varios directorios que no deberían ser accesibles, entre ellos, el
directorio «[Link]», un archivo que se encuentra en la raíz de un sitio web e indica a qué partes no quieren que
accedan los rastreadores de los motores de búsqueda. Una buena configuración de la página web no mostraría este
directorio, ya que no debería ser accesible.

Ilustración 18: Directorio «[Link]».

Unidad 5
Taller 1
26
ENUNCIADO
4
EJERCICIO
PRÁCTICO 1

Unidad 1
Introducción a la tecnología
27
4 ENUNCIADO EJERCICIO PRÁCTICO 1

¿Podrías encontrar algún archivo con información sensible en


alguno de estos directorios?

Unidad 5
Taller 1
28
SOLUCIONARIO
5
EJERCICIO
PRÁCTICO 1

Unidad 1
Introducción a la tecnología
29
5 SOLUCIONARIO EJERCICIO PRÁCTICO ACTIVIDAD 1

• En el directorio «[Link]» indica que está deshabilitado el directorio «/ftp», lo que puede tratarse de un directorio al
que el creador de la web no quiere que se acceda porque puede contener información privada.

Ilustración 19: El directorio «/ftp» está deshabilitado.

Unidad 5
Taller 1
30
5 SOLUCIONARIO EJERCICIO PRÁCTICO ACTIVIDAD 1

• Como sabemos, esta página tiene una mala configuración. Por tanto, al entrar en el directorio «/ftp», aparecen varios
archivos con datos sensibles que no deberían ser accesibles, entre ellos, uno denominado «[Link]», que podría ser
información confidencial de esta web.

Ilustración 20: Archivos con datos sensibles.


Unidad 5
Taller 1
31
5 SOLUCIONARIO EJERCICIO PRÁCTICO ACTIVIDAD 1

• Abre los archivos «[Link]» y «[Link]».


▪ Al volver al menú principal de Juice Shop, observa que se ha resuelto la prueba de acceso a un documento
confidencial.

Ilustración 21: Resolución de la prueba de acceso a un documento confidencial.

Unidad 5
Taller 1
32
VULNERABILIDAD
6
FALLO DE
AUTENTICACIÓN E
IDENTIFICACIÓN

Unidad 1
Introducción a la tecnología
33
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• En el menú principal de la página, observa que los


productos tienen reseñas. En una de ellas, hay un
usuario que puede ser de interés, ya que puede
tratarse de un administrador con permisos, cuyo
correo electrónico sería admin@[Link]. En
este caso, el objetivo es conseguir la contraseña
de este usuario a través de un ataque por fuerza
bruta.

Ilustración 22: Apartado de reseñas.


Unidad 5
Taller 1
34
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Intenta registrarte con este usuario.


• Para probar esta vulnerabilidad, necesitas la herramienta BurpSuite, un conjunto de herramientas diseñado para
ayudar en las pruebas de penetración de aplicaciones web a través de HTTP y HTTPS.
▪ La herramienta principal es un proxy diseñado para permitir el análisis y la edición del tráfico web. El proxy puede
interceptar solicitudes y respuestas web y leerlas y editarlas en tiempo real antes de que lleguen a sus
respectivos destinos.
• Para usar esta herramienta, deberás instalar y configurar el proxy.
▪ Añade una extensión denominada FoxyProxy, que encontrarás en este enlace y haz clic en «Agregar a Firefox».

Unidad 5
Taller 1
35
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

Ilustración 23: Extensión FoxyProxy y ubicación del botón «Agregar a Firefox».

Unidad 5
Taller 1
36
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

Ilustración 24: Añadir extensión FoxyProxy estándar.


Unidad 5
Taller 1
37
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Una vez añadida, aparecerá un icono en la parte superior derecha, donde se desplegará un menú. Haz clic en
«Options».

Ilustración 25: Menú y botón de «Options».


Unidad 5
Taller 1
38
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

Ilustración 26: Opción «Añadir». Unidad 5


Taller 1
39
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Añade la siguiente configuración y haz clic en «Save».

Ilustración 27: Campos de configuración.


Unidad 5
Taller 1
40
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

Ilustración 28: Campos de configuración y clic en «Save».


Unidad 5
Taller 1
41
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Una vez instalado y configurado el


proxy, abre la herramienta BurpSuite
dentro de la máquina Kali Linux, la cual
viene instalada por defecto.
• Ejecuta el comando burpsuite. Se
abrirá una ventana emergente que
indica un aviso de que existe una nueva
versión disponible, que no actualizarás
por ahora. Haz clic en «Close» para
continuar con la versión actual.

Unidad 5
Ilustración 29: Botón de cierre en la ventana de actualización. Taller 1
42
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Una vez abierto BurpSuite, inicia el ataque. Para ello, accede antes a la página de Login de nuestra Juice Shop.

Ilustración 30: Página de Login de Juice Shop.

Unidad 5
Taller 1
43
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Activa el proxy antes instalado pulsando en el icono que está en la esquina superior derecha del navegador y
seleccionando la opción BurpSuite antes configurada.

Ilustración 31: Opción BurpSuite antes configurada.


Unidad 5
Taller 1
44
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Una vez activado, intenta acceder con el


usuario mencionado antes (admin@juice-
[Link]) poniendo cualquier contraseña
aleatoria.

Ilustración 32: Login con el usuario admin@[Link]


y una contraseña aleatoria.

Unidad 5
Taller 1
45
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Cuando pulses la opción «Log in»,


se abrirá la ventana emergente de
BurpSuite con la petición de log in
que acabas de lanzar.

Ilustración 33: Ventana emergente


de BurpSuite con la petición de log in.

Unidad 5
Taller 1
46
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• La petición ha sido interceptada por BurpSuite


y en esta aparecen datos sensibles, como el
usuario y contraseña que has probado
anteriormente, lo que se debe a una mala
configuración de la página.
• Una vez interceptada esta petición, haz clic
derecho sobre esta petición y selecciona la
opción «Send to Intruder».

Ilustración 34: Opción


«Send to Intruder».

Unidad 5
Taller 1
47
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Dentro del menú «Intruder», selecciona el


submenú «Positions».

Ilustración 35: Menú «Intruder»


y submenú «Positions».
Unidad 5
Taller 1
48
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Para llevar a cabo este ataque de fuerza bruta, necesitamos un diccionario de contraseñas. A continuación, crearás tu
propio diccionario, aunque existen varios ya creados que también podrías utilizar.
▪ Para ello, accede a la terminal Kali y crea un documento denominado [Link] por medio del comando
nano.

Ilustración 36: Ejecución del comando nano para


crear el documento [Link].

Unidad 5
Taller 1
49
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Aparecerá un documento donde copiarás las contraseñas más típicas y dónde podrás incluir las que tú quieras. Por
ejemplo, puedes copiar las siguientes:
▪ admin ▪ user ▪ cloud1234
▪ root ▪ sploitme ▪ r00t123
▪ toor ▪ whoami ▪ bob
▪ password ▪ password0 ▪ 123123
▪ password123 ▪ vagrant
▪ adminadmin ▪ pass123
▪ admin123 ▪ password1234
▪ msfadmin ▪ ilovei
▪ postgres ▪ testing
Ilustración 37: Listado
de contraseñas típicas.
Unidad 5
Taller 1
50
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Para guardar este documento deberás


pulsar «Control + O» y después «Control +
X» para salir de este documento.
• Una vez guardado, este diccionario lo
podrás utilizar en BurpSuite para intentar
conseguir la contraseña de este usuario.
▪ Para ello, accede a la herramienta
BurpSuite y haz clic el submenú
«Payloads».

Ilustración 38:
Submenú Payloads.
Unidad 5
Taller 1
51
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• En este menú es donde vas a utilizar tu diccionario creado anteriormente.


▪ En «Payload Options», haz clic en la opción «Load».
• En la ventana emergente, podrás encontrar el diccionario que has creado anteriormente. Selecciónalo y pulsa «Abrir»
para cargarlo.

Unidad 5
Taller 1
52
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

Ilustración 39: Ubicación del diccionario creado.


Unidad 5
Taller 1
53
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Una vez cargado, haz clic en la opción «Start attack» y empezará a realizar el ataque de fuerza bruta.

Ilustración 40: Botón «Start attack» .


Unidad 5
Taller 1
54
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

Ilustración 41: Inicio del ataque.


Unidad 5
Taller 1
55
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Cuando haya terminado el ataque, verás que ha encontrado la contraseña del usuario, ya que reporta como Status un
código 200, que quiere decir que la solicitud ha tenido éxito.

Ilustración 42: Status con código 200.

Unidad 5
Taller 1
56
6 VULNERABILIDAD FALLO DE AUTENTICACIÓN E IDENTIFICACIÓN

• Ahora sabes que la contraseña de este usuario es admin123, con lo que ya puedes acceder suplantándole, con el
agravante de que este usuario tiene permisos de administrador.

Ilustración 43: Ataque realizado con éxito.

Unidad 5
Taller 1
57
7
ENUNCIADO
EJERCICIO
PRÁCTICO 2

Unidad 1
Introducción a la tecnología
58
7 ENUNCIADO EJERCICIO PRÁCTICO 2

¿Existe otra manera de registrarte sin


disponer de los datos anteriores?

Unidad 5
Taller 1
59
8
SOLUCIONARIO
EJERCICIO
PRÁCTICO 2

Unidad 1
Introducción a la tecnología
60
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

• Existen varias maneras de acceder como administrador, te explicaremos otra.


• Accede a la página de Log In. Una vez allí, activa el proxy y abre BurpSuite. De esta forma, las peticiones no llegan
de forma directa a la página web, sino que pasan primero por el proxy, y en caso de que se quiera enviar alguna
información al navegador, se deberá realizar desde el proxy. Esto permite la posibilidad de modificar y alterar las
peticiones desde el proxy antes de que se envíen.
▪ En la página de Log In esta vez haz clic a Not yet a costumer y pondrás cualquier usuario y contraseña, con una
pregunta de seguridad aleatoria y cualquier respuesta. Pulsa en Register.

Unidad 5
Taller 1
61
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

Ilustración 44: Página de


Ilustración 45: Campos de
Log In y ubicación de Unidad 5
registro de nuevo usuario. 62
Not yet a costumer? Taller 1
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

• Cuando BurpSuite haya interceptado la


petición verás que, como antes, muestra los
datos que has utilizado.

Ilustración 46: Datos referentes


a la petición de registro de nuevo usuario.

Unidad 5
Taller 1
63
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

• Ahora enviarás esta petición dentro de BurpSuite en el menú Reapeter. Para ello, haz doble clic sobre la petición y
selecciona Send to Repeater.

Ilustración 47: Opción Sent to Repeater. Unidad 5


64
Taller 1
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

• Una vez enviada la petición, vuelve al menú y modifica esta petición.


▪ El primer campo que vas a cambiar es el de correo electrónico, en que el pondrás admin.
▪ Añade también una coma al final de securityAnswer.
▪ Pulsa Enter para añadir otra línea.
▪ Escribe username:admin.
▪ Añade otra coma y pulsa Enter para añadir otra línea.
▪ Escribe role:admin.
• Ahora ya has creado un usuario administrador con todos los permisos de este.

Unidad 5
Taller 1
65
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

Unidad 5
Ilustración 48: Campos a cumplimentar. Taller 1
66
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

• Como podemos ver en la imagen de la diapositiva anterior, en el campo email nos aparece únicamente la palabra
«admin» y no sigue el formato típico de «texto@dominio», porque el servidor no realiza este tipo de comprobaciones.
En una programación segura sí se comprueba que la información facilitada sigue un formato concreto además de una
longitud fija; sin embargo, como esta aplicación está desarrollada para ser vulnerable y realizar pruebas, no se
realizan estas comprobaciones y por tanto, no es preciso que el email siga el formato estándar de los correos
electrónicos.
• Una vez añadido todos estos campos, haz clic en Send y aparecerá una respuesta positiva.

Unidad 5
Taller 1
67
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

Unidad 5
Ilustración 49: Ubicación del botón Send. Taller 1
68
8 SOLUCIONARIO EJERCICIO PRÁCTICO 2

• Al volver a la página de inicio de Juice Shop, observarás que has conseguido otro logro.

Ilustración 50: Acción realizada con éxito.

• Ya puedes iniciar sesión con el usuario que has creado anteriormente.

Unidad 5
Taller 1
69
9
VULNERABILIDAD
INYECCIÓN XSS
Unidad 1
Introducción a la tecnología
70
9 VULNERABILIDAD INYECCIÓN XSS

Las inyecciones más comunes son las inyecciones SQL y NoSQL, la inyección de comandos, inyección LDAP y Cross-
Site Scripting (XSS). Este tipo de ataques pueden ocurrir cuando:
• Los datos suministrados por el usuario no son validados, filtrados o saneados por la aplicación.
• Las consultas dinámicas o las llamadas no parametrizadas sin escape de contexto se utilizan directamente en la base
de datos. Una consulta dinámica es una consulta que se genera de forma dinámica –en ese momento- cuando se
quiere ejecutar, en contraposición de las consultas estáticas, que ya están elaboradas de antemano y no es posible
modificarlas. Las consultas o llamadas no parametrizadas hacen referencia al uso de cadenas de texto
concatenadas, es decir, unidas, donde se une el valor de la variable como cadena.
• Los datos se utilizan dentro de los parámetros de búsqueda del mapeo objeto-relacional (ORM) para extraer registros
adicionales y sensibles. El mapeo objeto-relacional consiste en una técnica de programación que permite convertir
datos del sistema utilizados por los lenguajes de programación orientado a objetos al que se utiliza por las bases de
datos relacionales.

Unidad 5
Taller 1
71
9 VULNERABILIDAD INYECCIÓN XSS

Para realizar estas inyecciones debes tener en cuenta cómo está creada la página web, es decir, que tipo de lenguaje
de programación utiliza y que tipo de base de datos usa.
En este caso, utiliza un lenguaje de programación JavaScript y tiene una base de datos SQL, por lo que basarás las
inyecciones en estos datos.
Ahora vas a probar una inyección XSS, que permite a los atacantes colocar secuencias de comandos maliciosas en
páginas web aprovechándose de malas prácticas en el código de la página web y así conseguir información confidencial
o escalar privilegios.

Unidad 5
Taller 1
72
9 VULNERABILIDAD INYECCIÓN XSS

• Para poder realizar esta inyección, trata de encontrar zonas de una página web donde un valor que introduzcas
aparezca reflejado, es decir, que dé una respuesta. En este caso, utilizarás el campo de búsqueda.

Ilustración 51: Campo de búsqueda.

Unidad 5
Taller 1
73
9 VULNERABILIDAD INYECCIÓN XSS

• En este campo escribimos el siguiente texto: <iframe src="javascript:alert(`xss`)">

Ilustración 52: Inyección: <iframe src="javascript:alert(`xss`)">

Unidad 5
Taller 1
74
9 VULNERABILIDAD INYECCIÓN XSS

Ilustración 53: Inyección XSS.

Unidad 5
Taller 1
75
9 VULNERABILIDAD INYECCIÓN XSS

• Este código provocaría que se ejecute la función alert() de JavaScript que hace que el navegador muestre un pop-up
o ventana emergente con el texto indicado dentro del paréntesis de alert, en nuestro caso «XSS».

Ilustración 54: Ataque realizado con éxito.

Unidad 5
Taller 1
76
10
ENUNCIADO
EJERCICIO
PRÁCTICO 3
Unidad 1
Introducción a la tecnología
77
10 ENUNCIADO EJERCICIO PRÁCTICO 3

Descubre dónde se debería utilizar la siguiente inyección SQL: ' OR


TRUE;.

Unidad 5
Taller 1
78
11
SOLUCIONARIO
EJERCICIO
PRÁCTICO 3 Unidad 1
Introducción a la tecnología
79
11 SOLUCIONARIO EJERCICIO PRÁCTICO 3

• SQL (Structured Query Language) es un lenguaje utilizado en programación que sirve para administrar y recuperar
información que está recogida en un sistema de gestión de bases de datos. La inyección SQL se aprovecha de una
mala configuración de las consultas a la base de datos, ya que produce una mala validación del texto de entrada. A
continuación, se muestra un ejemplo de lo que sería una consulta de la base de datos SQL.

SELECT id
FROM tabla_usuarios
WHERE usuario='$usuario' AND pass='$pass';

Unidad 5
Taller 1
80
11 SOLUCIONARIO EJERCICIO PRÁCTICO 3

• Si se permite hacer una consulta concatenada, entonces se puede inyectar código SQL adicional y permitir, por
ejemplo, acceder al sistema con un usuario del que no se sabe la contraseña. Probaremos con el usuario admin.

SELECT id
FROM tabla_usuarios
WHERE usuario='admin' AND pass=''or '1'='1'; (Que es lo mismo que ‘OR TRUE;)

Unidad 5
Taller 1
81
11 SOLUCIONARIO EJERCICIO PRÁCTICO 3

• Introduce esta inyección en el Log in.

Ilustración 55: Página de inicio de Log in.


Unidad 5
Taller 1
82
11 SOLUCIONARIO EJERCICIO PRÁCTICO 3

• El sistema, en este caso, procesaría la consulta de la siguiente forma:

SELECT id
FROM tabla_usuarios
WHERE usuario=”OR TRUE;

• Esto haría que, al ser la condición verdadera siempre, es decir, que exista un usuario, se logre acceder al primer
registro, que generalmente suele ser admin.
• Al hacer clic en Log in, observa que estás accediendo como el usuario admin@[Link] con todos los privilegios de
administrador, ya que es el primer usuario de la base de datos.

Unidad 5
Taller 1
83
11 SOLUCIONARIO EJERCICIO PRÁCTICO 3

Ilustración 56: Permisos de administrador del usuario.

Unidad 5
Taller 1
84
¡GRACIAS!

85

También podría gustarte