Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe – OWASP Top 10 2025: Insecure Data Handling

TryHackMe – OWASP Top 10 2025: Insecure Data Handling

Hola hacketones! Bienvenidos a un nuevo CTF para la Certificación SEC1 de la ruta Cyber Security 101 de TryHackMe – OWASP Top 10 2025: Insecure Data Handling

Top 10 de OWASP 2025: Manejo inseguro de datos

Obtenga información sobre A04, A05 y A08 en relación con el manejo inseguro de datos.

Esta sala le presentará 3 elementos de la lista OWASP Top 10 (2025). En esta sala, aprenderá sobre los elementos relacionados con el comportamiento de la aplicación y la entrada del usuario. Cubriremos estas vulnerabilidades brevemente, cómo prevenirlas y, finalmente, practicará la explotación de estas vulnerabilidades:

  • A04: Fallos criptográficos
  • A05: Inyección
  • A08: Fallos de software o de integridad de datos

Implementar la práctica

Antes de comenzar, implemente la máquina virtual práctica haciendo clic en el botón verde «Iniciar máquina» a continuación. Tenga en cuenta que necesitará usar TryHackMe AttackBox o su propia máquina de hacking conectada a la VPN de TryHackMe para acceder a cada práctica

A04: Fallos criptográficos

Las fallas criptográficas aparecen una vez más en esta lista de los 10 principales de OWASP . A continuación, analizaremos qué es exactamente y algunas medidas de mitigación. 

¿Qué son las fallas criptográficas?

Las fallas criptográficas ocurren cuando los datos confidenciales no están adecuadamente protegidos debido a la falta de cifrado, una implementación defectuosa o medidas de seguridad insuficientes. Esto incluye el almacenamiento de contraseñas sin hash, el uso de algoritmos obsoletos o débiles (como MD5 , SHA1 o DES ), la exposición de claves de cifrado o la falta de seguridad de los datos durante la transmisión.

Un ejemplo increíble de esto es una aplicación o servicio que “desarrolla su propia criptografía” en lugar de utilizar algoritmos de cifrado bien establecidos, examinados y verificablemente seguros.

Cómo prevenir fallos criptográficos

La prevención de fallos criptográficos comienza con la elección de algoritmos robustos y modernos y su correcta implementación. La información confidencial, como las contraseñas, debe cifrarse mediante funciones de hash robustas y lentas como bcrypt, scrypt o Argon2. Al cifrar datos, evite crear sus propios algoritmos; en su lugar, utilice bibliotecas confiables y estándares del sector.

Nunca incorpore credenciales de acceso (es decir, a un servicio de terceros) en el código fuente, archivos de configuración ni repositorios. En su lugar, utilice sistemas o entornos de gestión de claves seguros diseñados específicamente para almacenar secretos.

Práctica

La práctica para esta tarea se encuentra en http://10.64.153.67:8001 . Esta aplicación web demuestra un servicio de «intercambio de notas» que utiliza una clave derivada compartida débil para proteger las notas

Siga los pasos de la aplicación web para desbloquear todas las notas y recuperar una bandera.

Contenido recomendado de TryHackMe

Si quieres explorar este tipo de ataque con mucha más profundidad, te recomendamos el siguiente contenido de TryHackMe:

Responda las preguntas a continuación

Descifra las notas cifradas. Una de ellas contendrá un valor de bandera. ¿Cuál es?

THM{WEAK_CRYPTO_FLAG}

A05: Inyección

La inyección ha sido una característica recurrente en la lista de los 10 principales de OWASP , y no es de extrañar. Sigue siendo un ejemplo clásico de explotación web.

¿Qué es la inyección?

La inyección ocurre cuando una aplicación toma la entrada del usuario y la gestiona incorrectamente. En lugar de procesar la entrada de forma segura, la aplicación la pasa directamente a un sistema que puede ejecutar comandos o consultas, como una base de datos, un shell, un motor de plantillas o una API

Probablemente esté familiarizado con la inyección SQL , donde un atacante inserta una consulta SQL en la lógica de una aplicación, como un formulario de inicio de sesión, que luego es procesada por la base de datos. Esto ocurre cuando la aplicación web no depura la entrada del usuario y, en su lugar, la utiliza para construir la consulta. Por ejemplo, al tomar la entrada «nombre de usuario» en un formulario de inicio de sesión y usarla directamente para consultar la base de datos.

Los siguientes son algunos ejemplos clásicos de inyección con los que quizás esté familiarizado:

  • Inyección SQL
  • Inyección de comandos
  • Indicaciones de IA
  • Inyección de plantilla del lado del servidor (SSTI)

Lamentablemente, incluso en 2025, este tipo de ataques siguen siendo relevantes, como lo demuestra la inclusión de la inyección en la lista de los diez principales ataques de OWASP , no solo una vez en 2021, sino dos veces para 2025. La inyección es de alta gravedad y debe tratarse en consecuencia.

Cómo prevenir la inyección

Para prevenir la inyección, primero hay que garantizar que la entrada del usuario siempre se considere no confiable. En lugar de analizar directamente, se deben tomar elementos de la entrada para realizar consultas. Para las consultas SQL , esto implica usar sentencias preparadas y consultas parametrizadas en lugar de generar consultas mediante la concatenación de cadenas. Para los comandos del sistema operativo , se deben evitar las funciones que pasan la entrada directamente al shell del sistema y, en su lugar, utilizar API y procesos seguros que no invoquen el shell.

La validación y el saneamiento de entradas son cruciales para prevenir este tipo de ataques. Evite caracteres peligrosos, aplique tipos de datos estrictos y filtre incluso antes de que la aplicación procese la entrada.

Práctica

La práctica de hoy mostrará la inyección de comandos . Este ejemplo ilustra la inyección de plantillas del lado del servidor (SSTI). Se abusará de la capacidad de una aplicación para renderizar contenido dinámico y recuperar un indicador almacenado en la máquina que la aloja.

Puedes acceder a esta parte de la práctica en http://10.64.153.67:8000 .

Contenido recomendado de TryHackMe

Si quieres explorar este tipo de ataque con mucha más profundidad, te recomendamos el siguiente contenido de TryHackMe:

Responda las preguntas a continuación

Realiza un ataque SSTI en la aplicación práctica. Debes leer el contenido de flag.txt, que se encuentra en el mismo directorio que la aplicación web.

 THM{SSTI_FLAG_OBTAINED}

A08: Fallos de software o de integridad de datos

Nuevamente, las fallas de software o integridad de datos han sido un tema recurrente en la lista de los 10 principales de OWASP , apareciendo dos veces en las últimas dos versiones. Analicemos esto con más detalle a continuación.

¿Qué son las fallas de integridad de software o de datos?

Las fallas de integridad de software o datos ocurren cuando una aplicación depende de código, actualizaciones o datos que asume seguros, sin verificar su autenticidad, integridad u origen. Esto incluye confiar en actualizaciones de software sin verificación, cargar scripts o archivos de configuración de fuentes no confiables, no validar datos que afectan la lógica de la aplicación o aceptar datos como binarios, plantillas o archivos JSON sin confirmar si han sido alterados.

Cómo evitar fallos de integridad de software y datos

Para prevenir estos fallos, es fundamental establecer límites de confianza. Las aplicaciones nunca deben asumir que el código, las actualizaciones o los datos clave son legítimos y se confía automáticamente en ellos; su integridad debe verificarse. Esto implica el uso de métodos como comprobaciones criptográficas (como sumas de comprobación) para los paquetes de actualización y garantizar que solo fuentes confiables puedan modificar los artefactos críticos.

Además, para las aplicaciones, los límites de integridad y confianza también deben estar dentro de los procesos de compilación como CI / CD .

Práctica

Esta práctica demostrará un ataque de deserialización en Python. Puede acceder a esta práctica en http ://MACHINE_IP: 8002

Siga los pasos de la práctica para generar y proporcionar información maliciosa a la aplicación web.

Contenido recomendado de TryHackMe

Si quieres explorar este tipo de ataque con mucha más profundidad, te recomendamos el siguiente contenido de TryHackMe:

Responda las preguntas a continuación

Use Python para recopilar una carga útil serializada maliciosa que lee el contenido de flag.txt y lo envía a la aplicación

 ¿Cuáles son los contenidos de flag.txt?
thm{insecure_deserialization}

 

import pickle

import base64

class Malicious:

 def __reduce__(self):

 return (eval, («open(‘flag.txt’).read()»,))

payload = pickle.dumps(Malicious())

encoded = base64.b64encode(payload).decode()

print(encoded)

 

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *