An open API service indexing awesome lists of open source software.

https://github.com/platzi/curso-owasp-top-10

Aplicación vulnerable al OWASP Top 10 2021, para el Curso de OWASP Top 10: Riesgos en Aplicaciones.
https://github.com/platzi/curso-owasp-top-10

owasp owasp-top owasp-top-10 owasp-top-ten

Last synced: 7 months ago
JSON representation

Aplicación vulnerable al OWASP Top 10 2021, para el Curso de OWASP Top 10: Riesgos en Aplicaciones.

Awesome Lists containing this project

README

          

# Curso de OWASP Top 10: Riesgos en Aplicaciones
## Introducción
Esta es la documentación del proyecto de aplicación vulnerable para el Curso de OWASP Top 10: Riesgos en Aplicaciones de Platzi.

A continuación encontrarás toda la información necesaria para utilizar este proyecto.

## Índice
1. [Introducción](#curso-de-owasp-top-10-vulnerabilidades-en-aplicaciones)
2. [Pasos de instalación](#pasos-de-instalación)
1. [Paso 1: Clonar el repositorio](#paso-1-clonar-el-repositorio)
2. [Paso 2: Agregar el alias localbox a tu localhost](#paso-2-agrega-el-alias-localbox-a-tu-localhost)
3. [Paso 3: Agrega el certificado CA al navegador](#paso-3-agrega-el-certificado-ca-al-navegador)
3. [Uso del repositorio](#uso-del-repositorio)
4. [Comandos de docker](#comandos-de-docker)
5. [Software de trabajo](#software-de-trabajo)
6. [Recursos adicionales](#recursos-adicionales)
- [Clases relacionadas](#clases-relacionadas)
- [Acceso a grafana](#acceso-a-grafana)
- [Usuarios de la aplicación](#usuarios-de-la-aplicación)
7. [Créditos](#créditos)

## Pasos de instalación
1) Clonar el repositorio
2) Agregar alias localbox al localhost
3) Agregar certificado CA al navegador

### Paso 1: Clonar el repositorio
Para clonar el repositorio simplemente muevete a tu directorio de trabajo en la terminal y ejecuta el comando.
```
git clone https://github.com/platzi/curso-owasp-top-10 OWASPTop10
```

Se creará el directorio OWASPTop10, en el que podrás trabajar el proyecto.

### Paso 2: Agrega el alias localbox a tu localhost
Para poder utilizar los certificados SSL se necesita que coincidan con el nombre de dominio registrado, por lo tanto es necesario indicarle a nuestra computadora ese dominio y acceder al proyecto desde esa dirección.

#### Agregar el alias en sistemas tipo UNIX (MacOS y Linux)
Para agregar el alias en sistemas tipo UNIX solamente necesitas editar el archivo `/etc/hosts`, con tu editor de texto plano preferido, siempre teniendo permisos de administrador.

Agrega la siguiente línea y guarda los cambios:
```
127.0.0.1 localbox
```

#### Agregar el alias en Windows
En el caso de windows deberás editar el archivo `C:\Windows\System32\drivers\etc\hosts`, con tu editor de texto plano preferido, siempre teniendo permisos de administrador.

Agrega la siguiente línea y guarda los cambios:
```
127.0.0.1 localbox
```

#### Resultado final
Este es un ejemplo de mi resultado final:
```
127.0.0.1 localhost
127.0.0.1 localbox
```

Ahora si, puedes utilizar el alias ingresando a http://localbox/ en lugar de http://localhost, donde podrás ver la página de inicio del proyecto, siempre que el servidor ya esté ejecutandose.

### Paso 3: Agrega el certificado CA al navegador
Para poder utilizar los certificados SSL del proyecto sin ninguna alerta o error del navegador, es necesario agregar el certificado `RootCA.crt`, que viene en la carpeta `CA` del repositorio, en las configuraciones del navegador.

#### Instrucciones para agregar el certificado CA a tu navegador

Agregar el certificado en Chrome
1. Abre Chrome y ve a la configuración haciendo clic en el icono de tres puntos en la esquina superior derecha.
2. En el menú desplegable, selecciona "Configuración".
3. En la sección "Privacidad y seguridad", haz clic en "Seguridad".
4. Desplázate hacia abajo hasta encontrar la sección "Certificados" y haz clic en "Administrar certificados".
5. En la ventana que se abre, selecciona la pestaña "Autoridades", luego haz clic en "Importar" y sigue el asistente de importación para seleccionar el archivo `RootCA.crt` y agregarlo como una Autoridad de Certificación de Confianza.

Agregar el certificado en Firefox
1. Abre Firefox y ve a la configuración haciendo clic en el menú de tres líneas en la esquina superior derecha.
2. Selecciona "Preferencias" en el menú desplegable.
3. En el panel izquierdo, selecciona "Privacidad y seguridad".
4. Desplázate hacia abajo hasta encontrar la sección "Certificados" y haz clic en "Ver certificados".
5. En la ventana que se abre, selecciona la pestaña "Autoridades" y haz clic en "Importar".
6. Sigue el asistente de importación para seleccionar el archivo `RootCA.crt` y agregarlo como una Autoridad de Certificación de Confianza.

Agregar el certificado en Safari
1. Abre Safari y ve al menú "Safari" en la barra de menú superior.
2. Selecciona "Preferencias" en el menú desplegable.
3. Ve a la pestaña "Avanzado".
4. Marca la casilla "Mostrar menú Desarrollo en la barra de menús".
5. Ahora, en la barra de menú superior, aparecerá un nuevo menú "Desarrollo". Haz clic en él y selecciona "Preferencias de certificados".
6. En la ventana que se abre, selecciona la pestaña "Autoridades" y haz clic en "Importar".
7. Sigue el asistente de importación para seleccionar el archivo `RootCA.crt` y agregarlo como una Autoridad de Certificación de Confianza.

## Uso del repositorio
Usa la rama `vulnerable` para ver la versión vulnerable del proyecto.
```sh
git checkout vulnerable
```

Cambia a la rama de cada riesgo del Top 10, para ver su solución.
```sh
git checkout
```

Por ejemplo:
```sh
git checkout A01-BrokenAccessControl
```

Usa la rama `solved` para ver la versión corregida del proyecto.
```sh
git checkout solved
```

## Comandos de docker
Aquí te van algunos comandos útiles para utilizar el proyecto durante las prácticas.

Recuerda que para los siguientes comandos, debes encontrarte en el directrio del proyecto, en el mismo lugar que el archivo `docker-compose.yml`.

Ejecutar el proyecto
```sh
docker compose up --build
```

Ver logs por contenedor
```sh
docker logs
```

Por ejemplo:
```sh
docker logs backend
```

Terminar la ejecución del proyecto
```sh
Usa la combinación de teclas [Ctrl]+[C] ó el equivalente en tu sistema operativo
```

Eliminar los contenedores y volumenes de datos
```sh
docker compose down --volumes
```

__IMPORTANTE__

Recuerda terminar el proceso de docker y eliminar los volúmenes cada vez que cambies de rama para generar un entorno limpio desde cero.

## Software de trabajo
- VS Code
- Docker
- Burp Suite
- DirBuster
- NodeJS (para la clase de npm audit)

Aquí te comparto una lista de tutoriales para instalar tus herramientas de pentesting
Tutorial de instalación de Docker
Tutorial de instalación de Burp Suite en Windows
Tutorial de instalación de Burp Suite en Linux
Tutorial de instalación de Burp Suite en MacOS
Tutorial de instalación de DirBuster

## Recursos adicionales
### Clases relacionadas

A continuación puedes encontrar las clases de los 10 retos del proyecto relacionados al OWASP Top 10.
A01:2021 - Broken Access Control
A02:2021 - Cryptographic Failures
A03:2021 - Injection
A04:2021 - Insecure Design
A05:2021 - Security Misconfiguration
A06:2021 - Vulnerable And Outdated Components
A07:2021 - Identification And Authentication Failures
A08:2021 - Software And Data Integrity Failures
A09:2021 - Security Logging And Monitoring Failures
A10:2021 - Server-Side Request Forgery

### Acceso a grafana
Para acceder a las métricas en grafana puedes seguir los siguientes pasos:
1) Entra a [https://localbox/grafana](https://localbox/grafana)
2) Usa las credenciales por defecto para acceder al dashboard
3) Haz click en la opción "saltar" en la ventana de cambiar contraseña

Estas son las credenciales por defecto en grafana:

| username | password |
|----------|----------|
| admin | admin |

__¡Listo!__

Ahora puedes acceder a tus métricas en grafana.

### Usuarios de la aplicación
La aplicación tiene un usuario administrador y cuatro usuarios comunes, estas son sus credenciales:

| username | password |
|----------|----------|
| admin | admin |
| user1 | 1234 |
| user2 | 1234 |
| user3 | 1234 |

#### Happy Hunting!
Ha llegado el momento de poner manos a la obra y realizar tus prácticas.

![Hacker Cat](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYXR4Z29zeDZ1cGdxMm8yaWk0ZHJudnUzenQwMjEybWl1aWU4d3M5ciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/o0vwzuFwCGAFO/giphy.gif)

## Créditos
Proyecto creado por [Diana Nerd](https://dnrd.dev).

Para el [Curso de OWASP Top 10: Riesgos en Aplicaciones](https://platzi.com/cursos/owasp-top-10) en [Platzi](https://platzi.com/ciberseguridad).