Skip to content

Tutorial about Darkly project of the school 42. Analysis of vulnerabilities and security in web applications.

Notifications You must be signed in to change notification settings

gemartin99/Darkly-Tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 

Repository files navigation

Darkly-Tutorial 🕵️‍♂️🛡️

Si tu intención es entrar a este repositorio solo para sacar las flags, estás muy equivocado! La finalidad de este repositorio es ofrecerte una guía útil en caso de que te encuentres realmente perdido, pero la idea principal es que intentes resolver todo por ti mismo.

Si solo buscas la solución y no te esfuerzas en resolver los retos, no aprenderás nada en un CTF. En un entorno real, no te van a dar las soluciones hechas, y la clave del aprendizaje está en enfrentarte a los problemas, pensar de manera crítica y probar distintas soluciones.

Indice

  1. Path/Directory traversal 📂🔓

  2. Hidden input 🕵️‍♂️🔍

  3. Open Redirection 🔄🔀

  4. Survey 📊✅

  5. Cookie Tampering 🍪🛠️

  6. Stored XSS 💬⚠️

  7. Scrapping 🤖🕵️‍♂️

  8. HTTP Header Manipulation 🐦🕵️‍♂️

  9. SQL Injection Images 📸💉

  10. SQL Injection Members 👥💉

  11. Bruteforce 🔐⚔️

  12. Robots 🤖👮‍♂️

  13. XSS Reflected 🪟💥

  14. File Upload Injection 📤📄

1 - Path/Directory traversal 📂🔓

Descripción de la vulnerabilidad 💡🔍

Es una vulnerabilidad que ocurre cuando una aplicación web no valida adecuadamente las rutas de archivo proporcionadas por el usuario. Esto puede permitir que un atacante navegue a través de directorios del sistema de archivos del servidor que no deberían ser accesibles desde la aplicación.

Riesgos asociados ⚠️💥

Acceso no autorizado a archivos sensibles. El atacante puede acceder a archivos que normalmente estarían fuera de su alcance, como archivos de configuración del sistema, archivos de contraseñas, registros de bases de datos, archivos de sesión, etc.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre Path/Directory traversal:

Ejemplo básico muy parecido al que veremos nosotros AQUÍ

Ejemplo básico y otras variantes sobre path traversal AQUÍ

Ejemplo 🔧👨‍💻

⚠️ Antes de ir con el ejemplo + solución. Si no sabes mucho sobre tecnicas de hacking web te recomiendo antes de ver como resolverlo leer atentantemente el resto de apartados y mirar los videos educacionales que te dejo y de esta manera intentar resolverlo por tu cuenta, aprenderás mucho más! ⚠️

Si has omitido mi advertencia voy explicar cada captura e intentar que aprendas! Presta atención❗👀

  1. El primer paso que debemos seguir, una vez estamos dentro de la página web, sera observar como estan estructuradas las URLs de la página y navegaremos un poco por la web en busca de patrones que sugieran que la web es vulnerable a la inclusion de rutas de archivos o directorios en las URLS.

image

  1. Explorando por la página vemos que si le damos al botón de SIGN IN nos cargará la página con un panel de inicio de sesión y veremos que la URL de la página no sigue una ruta tradicional (absoluta/relativa).

image

Que significa esta URL❓ La parte de la URL antes del ´?´ sigue siuendo la ruta base. Lo que hay después de ´?´ son parámetros de consulta, estos parámetros proporcionan datos adicionales que son relevantes para la solicitud.

Basicamente, lo que sugiere esto es que lo que le estamos diciendo al servidor es que la página (page) que queremos cargar es signin (que eso sera una macro o algo por el estilo de un fichero, por ejemplo: signin.html).

  1. Una vez conocemos como funciona la estructura de URL y sabiendo que el parametro page puede ser manipulado sustituiremos la ruta de signin por la ruta a un fichero que nos interese. Lo primero que haremos sera poner varias veces ../ ya que eso significa que retrocederemos en los directorios del servidor , de esta manera llegaremos al directorio raiz y una vez ubicados en el directorio raiz le pediremos que cargue el fichero /etc/passwd ya que es un fichero muy valioso en el cual podemos ver nombres de usuarios, etc.

image

Una vez hemos hecho la consulta el servidor, en caso de ser vulnerable, nos devolveria el contenido de /etc/passwd. En este caso al ser un entorno controlado conseguimos la flag del ejercicio.

Prevención 🔒🛡️

Los puntos mas importantes para prevenir el ataque sería validar y sanitizar adecuadamente las entradas de usuario, limitar los permisos de acceso a archivos y directorios.

2 - Hidden input 🕵️‍♂️🔍

Descripción de la vulnerabilidad 💡🔍

Esta vulnerabilidad consiste en poder modificar valores en campos ocultos () en formularios web para alterar su comportamiento. Esto podría incluir cambiar privilegios de usuario, enviar datos falsos o manipular el estado de la aplicación.

Riesgos asociados ⚠️💥

Elevación de privilegios, donde un atacante cambia el estado de un usuario de "user" a "admin", otorgándole control administrativo completo sobre la aplicación. Además, la manipulación de campos ocultos podría facilitar la modificación de datos sensibles como precios de productos, contenido de mensajes u otra información crítica almacenada en la aplicación.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre hidden input/campo oculto manipulable:

Ejemplo básico muy parecido al que veremos nosotros, empezar a ver desde min 4:13 🕦 AQUÍ

Ejemplo 🔧👨‍💻

  1. El primer paso que haremos sera abrir el codigo fuente de la página web y examinarlo en busca de formularios <form> ya que suelen ser lugares comunes donde se encuentran campos ocultos que podrían ser manipulables.

    image

  2. Navegando por la página hemos encontrado algunos formularios pero en los campos ocultos no aparece nada de valor. Hasta que nos topamos con el apartado Recover password.

    image

  3. Si abrimos el codigo fuente podemos observar como hay un campo oculto con un valor de un correo electronico.

    image

  4. Sabiendo esto lo que haremos a continuacion sera sustituir dicho valor desde inspect para que de esta manera en vez de llegar la recuperación de contraseña al correo por defecto nos llegue al correo que nosotros especifiquemos.

image

  1. Una vez lo hayamos modificado le haremos click al boton de submit y ya nos dara la flag del ejercicio.

    image

Prevención 🔒🛡️

Verificar que todos los datos recibidos, incluidos los provenientes de campos ocultos, sean válidos y autorizados antes de procesar cualquier acción.

3 - Open Redirection 🔄🔀

Descripción de la vulnerabilidad 💡🔍

Esta vulnerabilidad ocurre cuando una aplicación web permite a los usuarios ser redirigidos a URLs externas sin validar su seguridad. Esto permite a un atacante manipular la URL de redirección, llevando a las víctimas a sitios maliciosos que pueden estar diseñados para el phishing o la distribución de malware.

Riesgos asociados ⚠️💥

  • Phishing: Los usuarios pueden ser engañados para que ingresen información confidencial en sitios fraudulentos.
  • Distribución de Malware: Los atacantes pueden redirigir a los usuarios a sitios que descargan software malicioso.
  • Pérdida de confianza: La reputación de la aplicación se puede ver gravemente afectada.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre Open Redirect 🔄🔀:

Explicación de Open Redirect AQUÍ

Ejemplo de uso AQUI

Ejemplo 🔧👨‍💻

  1. Al inspeccionar la página, observamos que la aplicación utiliza la estructura index.php?page=redirect&site=whatever donde el valor site no se valida correctamente. Esto permite que un atacante manipule el parámetro site para redirigir a los usuarios a cualquier URL, incluidas aquellas potencialmente maliciosas.

image

  1. Modificamos el valor de site por el de otra página.

image

  1. Finalmente, al hacer clic en el logo que hemos modificado con la redirección, deberíamos obtener la flag.

image

Prevención 🔒🛡️

Validar las URL's, permitiendo solo sitios de confianza o usar whitelists de dominios permitidos.

4 - Survey 📊✅

Descripción de la vulnerabilidad 💡🔍

La aplicación no valida correctamente los valores de entrada enviados a través de un formulario POST. Pudiendo modificar los valores de dicho formulario. Esta vulnerabilidad es conocida como Client-Side Validation Bypass.

Riesgos asociados ⚠️💥

Fraude financiero, acceso no autorizado a servicios o productos y integridad de los datos comprometida.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre Client-Side Validation Bypass💰🔧:

Ejemplo de uso similiar AQUI

Ejemplo 🔧👨‍💻

  1. En este caso, si entramos en la pestaña survey de la página, vemos la siguiente encuesta.

image

  1. Al inspeccionar la página o revisar el código fuente, notamos que la encuesta no valida correctamente los valores de entrada enviados a través de un formulario POST. El hecho de que se pueda enviar el parámetro value= sin que la aplicación verifique si es un valor válido indica un fallo en la lógica de validación.

image

  1. Modificamos el campo value por el valor que queramos. En este caso, si escogemos la opción 10 de ol, el valor será 9999999999999.

image

  1. Hacemos clic en la opción que hemos modificado.

image

  1. Esto nos devuelve la flag del ejercicio.

image

Prevención 🔒🛡️

Validación de entradas, sanitizando todo correctamente. Sobretodo, implementandolo en el backend ya que el frontend puede ser manipulado fácilmente por un atacante.

5 - Cookie tampering 🍪🛠️

Descripción de la vulnerabilidad 💡🔍

El atacante aprovecha la capacidad de modificar el contenido de las cookies desde el lado del cliente, usualmente mediante herramientas como la consola del navegador, para alterar su valor y engañar al servidor haciéndole creer que tiene ciertos privilegios o estado de autenticación.

Riesgos asociados ⚠️💥

Suplantación de identidad y por lo tanto acceso no autorizado a recursos.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre Cookie Manipulation 🍪:

Ejemplo básico sobre manipulación de Cookies muy parecido al que veremos nosotros, empezar a ver desde min 6:30 🕦 AQUI

Ejemplo 🔧👨‍💻

  1. Inspeccionamos la página y vemos nuestra cookie de sesión escribiendo el comando document.cookie en la consola del navegador. Observamos el ID de sesión y el valor de la cookie. Notamos que contiene I_am_admin=, pero no entendemos el valor asignado, así que buscamos la forma de desencriptarlo.

image

  1. Resulta que el valor es false. Lo que indica que nuestra cookie tiene el valor de I_am_admin=false. Lo que haremos será cambiar el valor de la cookie a true.

image

  1. Cogemos la cadena true y la encriptamos en md5, copiamos ese valor.

image

  1. Modificamos el valor de nuestra cookie de sesión para que sea el true encriptado.

image

  1. Al refrescar la página, ya seremos administradores, lo que nos dará acceso a la flag correspondiente.

image

Prevención 🔒🛡️

Tener firmado y cifrado de cookies, monitoreo para detectar cualquier actividad sospechosa, una validación y autenticación adecuada.

6 - Stored XSS 💬⚠️

Descripción de la vulnerabilidad 💡🔍

Permite a un atacante ejecutar scripts maliciosos en el navegador de otros usuarios. Ocurre cuando los datos enviados por un usuario a través de formularios o mensajes se guardan en la base de datos sin sanitizar adecuadamente, y luego se muestran a otros usuarios en alguna parte de la aplicación.

Riesgos asociados ⚠️💥

Ejecución de código malicioso, robo de cookies, redirección a sitios maliciosos.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre como realizar ataques XSS 💬⚠️:

Qué es XSS❓ Explicado PASO a PASO AQUI

Demostración y RIESGOS de esta VULNERABILIDAD AQUI

Ejemplo 🔧👨‍💻

  1. En la sección de Feedback, observamos que al publicar un mensaje, este se refleja directamente en la página web. Lo que intentaremos hacer es enviar un script para comprobar si el input está mal sanitizado y si, en lugar de tratarlo como texto plano, el servidor lo ejecuta. En este caso particular, al ser un CTF, si el mensaje contiene la palabra script, automáticamente obtenemos la flag, por lo que no es necesario un payload más complejo.

image

  1. Una vez le damos a sign ya nos aparece la flag.

image

Prevención 🔒🛡️

Validar y sanitizar todos los datos de entrada para eliminar o escapar cualquier contenido malicioso y codificar adecuadamente todos los datos antes de mostrarlos en la interfaz de usuario

7 - Scrapping 🤖🕵️‍♂️

Descripción de la vulnerabilidad 💡🔍

El web scraping es la práctica de extraer información de sitios web de manera automatizada. Si la aplicamos al ejemplo que nos da esta maquina veremos que tendremos que hacer una búsqueda exhaustiva a través de directorios y archivos para buscar la flag en uno de ellos.

Riesgos asociados ⚠️💥

Exposición de información sensible y carga no intencionada del servidor.

Videos educacionales sobre la vulnerabilidad 🎥

Ejemplo 🔧👨‍💻

WIP ⚒️

Prevención 🔒🛡️

Utilizar técnicas como CAPTCHA, límites de tasa y protecciones basadas en IP.

8 - HTTP Header Manipulation 🐦🕵️‍♂️

Descripción de la vulnerabilidad 💡🔍

Es una técnica en la que un atacante modifica los encabezados de las solicitudes HTTP para engañar a un servidor web. Esto puede permitir a los atacantes cambiar el comportamiento del servidor, como el manejo de sesiones, la autenticación y las redirecciones.

Riesgos asociados ⚠️💥

Ejecutar ataques de cross-site scripting (XSS), phishing, y la exposición de información sensible. Los atacantes pueden suplantar a usuarios legítimos, eludir controles de seguridad o redirigir tráfico a sitios maliciosos.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre como realizar ataques de HTTP Header Manipulation:

Estos videos educativos son útiles para comprender el concepto general de HTTP Header Manipulation, pero no siempre representan un ejemplo exacto de cómo resolver nuestro ejercicio específico. En el video, se muestra la manipulación del encabezado Host, ya que en el entorno del autor, el servidor no valida adecuadamente ese campo. En nuestro caso, la vulnerabilidad radica en la falta de validación de los encabezados User-Agent y Referer, que son los que necesitamos explotar para lograr la flag.

Explotando vulnerabilidades en la cabecera HTTP Host AQUÍ

Ejemplo 🔧👨‍💻

  1. Si nos desplazamos hasta el final de la página web, encontraremos una redirección.

image

  1. Esta nos lleva a una página donde, de inmediato, comienza a sonar la canción de "Albatroz" y aparece un texto extraído de Wikipedia. Es, cuanto menos, una página peculiar. Por lo tanto, procederemos a inspeccionarla y revisar su código fuente.

image

  1. Si examinamos bien en el codigo fuente de la página encontraremos dos comentarios muy interesantes. Uno nos indica que debemos acceder desde la URL https://www.nsa.gov/ y el otro nos sugiere usar el navegador con el agente de usuario ft_bornToSec

image

image

  1. Genial, sabiendo esto, vamos a hacer una solicitud curl modificando los parámetros que nos pide. Con el flag -e especificaremos un encabezado Referer, engañando al sistema para que crea que la solicitud proviene de un lugar de confianza, en este caso, https://www.nsa.gov/. Con el flag -A estamos indicando que el User-Agent que se enviará con la solicitud es ft_bornToSec, simulando el navegador. Por último, indicamos sobre qué página queremos hacer esa petición, y el resultado del comando se almacenará en un fichero llamado file.txt.

image

  1. Una vez realizada la solicitud, el contenido HTML se habrá almacenado en el archivo. A continuación, utilizaremos grep para buscar la flag dentro del archivo.

image

Prevención 🔒🛡️

Validación y sanitización de encabezados. Utilizar conexiones seguras HTTPS que van cifradas.

9 - SQL Injection Images 📸💉

WIP ⚒️

Descripción de la vulnerabilidad 💡🔍

Riesgos asociados ⚠️💥

Videos educacionales sobre la vulnerabilidad 🎥

Ejemplo 🔧👨‍💻

Prevención 🔒🛡️

10 - SQL Injection Members 👥💉

WIP ⚒️

Descripción de la vulnerabilidad 💡🔍

Riesgos asociados ⚠️💥

Videos educacionales sobre la vulnerabilidad 🎥

Ejemplo 🔧👨‍💻

Prevención 🔒🛡️

11 - Bruteforce 🔐⚔️

Descripción de la vulnerabilidad 💡🔍

Ocurre cuando un atacante intenta adivinar credenciales de acceso, como contraseñas, mediante un método automatizado que prueba combinaciones de usuarios y contraseñas. Este ataque es efectivo en sistemas que no implementan límites en los intentos de inicio de sesión, lo que permite al atacante intentar múltiples combinaciones en un corto período.

Riesgos asociados ⚠️💥

Acceso no autorizado a cuentas críticas, la información sensible puede ser robada y los múltiples intentos pueden sobrecargar el sistema.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre como realizar ataques de Fuerza Bruta con Hydra🐍:

Como utilizar Hydra paso a paso AQUÍ

Como usar Hydra en Panel de LOGIN WEB AQUÍ

Ejemplo 🔧👨‍💻

  1. Uno de los primeros elementos que llama nuestra atención en la página web es el llamativo botón de Sign In.

image

  1. Al hacer clic en este botón, somos redirigidos al siguiente panel de inicio de sesión.

image

  1. En este panel, si introducimos credenciales incorrectas, el servidor carga el archivo WrongAnswer.gif como respuesta.

image

  1. Procedemos a realizar un ataque de fuerza bruta en dicho panel utilizando la herramienta Hydra. Para ello, configuramos el usuario como admin y la contraseña se irá probando desde el fichero rockyou.txt. También debemos especificar la URL del panel y el tipo de petición que deseamos realizar. Es importante incluir los parámetros que queremos modificar entre ^^ y establecer que solo nos muestre el usuario y la contraseña cuando la respuesta del servidor sea diferente a WrongAnswer.gif. Una vez que ejecutamos el comando, debemos esperar un momento mientras Hydra realiza el ataque.

image

  1. Cuando Hydra termina, introducimos las credenciales obtenidas en el panel de inicio de sesión. En este caso, usamos:

    Usuario: admin

    Contraseña: shadow

image

  1. Después de iniciar sesión correctamente, accedemos y obtenemos la flag del ejercicio.

image

Prevención 🔒🛡️

Limitar los intentos de inicio de sesión y bloquear la cuenta tras varios intentos fallidos, requerir un segundo factor de autenticación para acceder a la cuenta y fomentar el uso de contraseñas complejas.

12 - Robots Admin 🤖👮‍♂️

Descripción de la vulnerabilidad 💡🔍

En este caso, esta vulnerabilidad se podría clasificar como Exposición de Información Sensible. Esta vulnerabilidad ocurre cuando un sistema revela información que no debería estar accesible, como contraseñas, a través de archivos de configuración o rutas ocultas.

Riesgos asociados ⚠️💥

Permite a un atacante acceder a áreas restringidas del sistema, implicando con ello la exposición de credenciales críticas y daño a la reputación.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre como realizar Fuzzing 🔍🧪:

Qué es FUZZING❓ AQUI

Ejemplo 🔧👨‍💻

  1. Una de las primeras tareas al buscar vulnerabilidades en una página web es identificar directorios ocultos. Para ello, utilizaremos la herramienta gobuster junto con un diccionario de directorios, lo que nos permitirá probar diferentes rutas a partir de la raíz del sitio.

image

  1. Al ingresar en las distintas rutas descubiertas, obtendremos diferentes tipos de información. Por ejemplo, al acceder a admin/, observamos que hay un panel de inicio de sesión.

image

  1. En la ruta whatever/, encontramos un archivo. Procedemos a descargarlo para analizar su contenido.

image

  1. Al visualizar el contenido del archivo descargado, se revela información importante: aparece el usuario root junto a lo que parece ser una contraseña. Intentamos ingresar estas credenciales en el panel de inicio de sesión de admin/, pero el intento resulta infructuoso. Es posible que la contraseña esté encriptada.

image

  1. Seleccionamos el texto encriptado y buscamos una página que permita desencriptar MD5. Introducimos la cadena en la herramienta de desencriptación, la cual nos indica que la contraseña es qwerty123@.

image

  1. Ahora, intentamos nuevamente iniciar sesión con las credenciales:

    Usuario: root

    Contraseña: qwerty123@

image

  1. Al ingresar correctamente, logramos acceder y conseguimos la flag correspondiente.

image

Prevención 🔒🛡️

Asegurarse de que archivos como robots.txt no revelen información sensible, utilizar nombres menos evidentes para directorios críticos (por ejemplo, cambiar /admin/ a algo como /s3cr3t-area-2024/) y asegurarse de que todos los accesos a áreas sensibles requieran credenciales sólidas y que se implementen roles de usuario.

13 - XSS Reflected 🪟💥

Descripción de la vulnerabilidad 💡🔍

Es una vulnerabilidad de seguridad que permite a un atacante inyectar scripts maliciosos en una página web que es ejecutada por el navegador de un usuario. Esto ocurre cuando una aplicación web incluye datos proporcionados por el usuario en su respuesta sin una adecuada validación o escape.

Riesgos asociados ⚠️💥

Robo de datos, como cookies de sesión o información sensible del usuario, phising, redirección maliciosa, daño a la reputación.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre hidden input/campo oculto manipulable:

Qué es y como funciona XSS Reclected❓ AQUI

Ejemplo básico parecido al que veremos nosotros AQUÍ

Ejemplo 🔧👨‍💻

  1. Si clickamos sobre la imagen nsa se nos abre la siguiente pagina.

image

  1. La URL contiene parámetros, en este caso, page y src. Las aplicaciones web a menudo utilizan parámetros de la URL para generar contenido dinámico. Si el parámetro src se usa directamente en el HTML sin ser validado o sanitizado, puede ser un punto de inyección. Probamos asignar un payload de XSS directamente a la URL, pero sin éxito.

image

  1. Como no hemos tenido éxito poniendolo a lo bruto, utilizaremos el esquema de URI que permite incrustar datos directamente en una página web o en un archivo, en lugar de enlazarlos desde una ubicación externa. Esto se utiliza comúnmente para incluir imágenes, archivos de texto o cualquier otro tipo de datos directamente en el código HTML o CSS. La estructura básica de una DATA URI es la siguiente: data:[tipo_mime][;base64], [contenido]. Sabiendo esto vamos a codificar el script en base64 para intentar colarlo.

image

  1. Modificamos la URL siguiendo la estructura básica de una DATA URI para asi incluir el script codificado. http://10.11.250.221/index.php?page=media&src=data:text/html;base64,PHNjcmlwdD5hbGVydCgnZGFtZSBsYSBmbGFnJyk8L3NjcmlwdD4=. Esta vez si, con éxito.

image

Prevención 🔒🛡️

Sanitizar y validar todas las entradas del usuario antes de ser procesadas o mostradas y implementar políticas que limiten los recursos que pueden ser cargados en la aplicación web.

14 - File Upload Injection 📤📄

Descripción de la vulnerabilidad 💡🔍

La capacidad de un atacante para cargar archivos maliciosos a un servidor a través de un formulario de carga de archivos. Esta vulnerabilidad ocurre cuando una aplicación web no valida adecuadamente los archivos que los usuarios intentan cargar, lo que permite que se suban archivos que pueden ser utilizados para ejecutar código malicioso, obtener acceso no autorizado o comprometer la seguridad del servidor.

Riesgos asociados ⚠️💥

Ejecución de código malicioso, acceso no autorizado, filtración de datos, daño a la reputación.

Videos educacionales sobre la vulnerabilidad 🎥

▶️ Videos sobre como realizar File Upload Injection 📤📄:

Ejemplo de uso buenísimo. No utilizaremos la herramienta Burpsuite pero nos sirve para entender como funciona. AQUI

Ejemplo 🔧👨‍💻

  1. Si nos vamos a la pestaña de Add image vemos que podemos subir un archivo.

image

  1. Creamos un fichero malicioso, en este caso no hara nada pero la idea es crear un fichero con contenido malicioso en .php

image

  1. Falseamos una petición para que el servidor crea que esta recibiendo un fichero .jpeg cuando realmente estamos subiendo el fichero malicioso .php. La salida de este comando se hara en el fichero tmp.txt. Despues lo que haremos sera hacer cat al fichero y grep para buscar la flag.

image

Prevención 🔒🛡️

Implementar validaciones rigurosas para los archivos cargados. Esto incluye verificar la extensión del archivo, el tipo MIME y el contenido real del archivo para asegurarse de que es seguro.




Este tutorial ha llevado mucho trabajo, si crees que te ha sido útil agradeceria mucho starred 🌟 para que así se comparta y pueda ayudar a más estudiantes 👨🏻‍🎓❤️




Autor ✍🏼

100px
gemartin

Intra 42

Contacto 📥

Contacta conmigo si crees que puedo mejorar el tutorial! Puede ayudar a futuros estudiantes! 😁

◦ Email: gemartin@student.42barcelona.com

◦ Linkedin: https://www.linkedin.com/in/gemartin99/

Quizás pueda interesarte!

- Para ver mi progresion en el common core 42 ↙️

AQUÍ

- Mi perfil en la intranet de 42 ↙️

AQUÍ