He estado practicando en temas relacionados con la seguridad y encontré este problema que no entiendo en absoluto. Recibe un formulario con una entrada llamada pass
, y este es el código que debe omitir:
<?php
error_reporting(0);
session_save_path('/home/mawekl/sessions/');
session_start();
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';
echo 'This task is as hard to beat as the castle which you can see on the bottom.<br>';
echo '<pre>';
include('./ascii.txt');
echo '</pre><br>';
$_SESSION['admin_level']=1;
if (!isset($_POST['pass']) || md5($_POST['pass'])!='castle')
{
echo '<b>Wrong or empty password.</b><br>';
$_SESSION['admin_level']=0;
}
Si ingresa a la sentencia if final, pierde (debe hacerlo para que $_SESSION['admin_level']
permanezca en 1
).
Cualquier ayuda es apreciada, gracias!
Clarificación:
No puedo editar el código que publiqué. Es un desafío. Todo lo que puedo hacer es enviar una contraseña a través de una entrada cuyo nombre es "pasar". Sí, sé que se supone que md5 devuelve una cadena larga de 32 caracteres. Ese es el reto.