El viaje del cifrado perdido (300)
Descripción del desafío
En un rincón olvidado de la red, un antiguo servidor protege los secretos de un viajero legendario. La única manera de acceder a ellos es a través de un portal de login. Sin embargo, este portal es viejo y defectuoso, lo que te permite bypassar la seguridad si sabes cómo. Tu misión es explotar la vulnerabilidad para obtener el cifrado final y la bandera.

Análisis inicial
Siempre me gusta echar un vistazo al código fuente de las páginas web, ya que a menudo contienen pistas ocultas o comentarios interesantes. En este caso no hay nada, pero sí que podemos ver que la página es bastante simple, con un formulario que envía la contraseña al servidor.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>La Cueva del Dragón</title>
<style>
body { font-family: sans-serif; background-color: #f0f0f0; text-align: center; padding-top: 50px; }
.container { background-color: white; padding: 20px; border-radius: 8px; max-width: 400px; margin: auto; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
input[type="text"] { width: 90%; padding: 10px; margin-top: 10px; border: 1px solid #ccc; border-radius: 4px; }
input[type="submit"] { background-color: #4CAF50; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; margin-top: 10px; }
.error { color: red; margin-top: 10px; }
</style>
</head>
<body>
<div class="container">
<h1>La Cueva del Dragón</h1>
<p>Un enorme dragón ha sellado su tesoro y solo el gran guerrero 'Aemond' conoce la contraseña para abrirla.</p>
<p>¿Serás capaz de entrar?</p>
<form action="/" method="post">
<input type="text" name="password" placeholder="Ingresa la contraseña secreta..." required>
<br>
<input type="submit" value="Entrar">
</form>
<p class="error">Contraseña incorrecta. ¡Solo 'Aemond' puede entrar!</p>
</div>
</body>
</html>
Hipótesis sobre la vulnerabilidad
En este punto y con tan poca información, lo único que se me ocurre es que el formulario de login podría ser vulnerable a inyecciones SQL. Si no hace ningún tipo de sanitización de la entrada, podríamos intentar inyectar una consulta SQL para saltarnos la autenticación.
Supongo que el backend utiliza una consulta SQL similar a esta para verificar la contraseña:
SELECT * FROM users WHERE password = 'user_input';
Explotación de la vulnerabilidad
Podríamos intentar inyectar algo como ' OR '1'='1 para que la consulta siempre devuelva verdadero:
SELECT * FROM users WHERE password = '' OR '1'='1';
Efectivamente, al introducir esa cadena en el campo de contraseña, logramos acceder al tesoro del dragón.

La flag es:
ikerlan{sql_injection_is_magic}