Natas level 11 – OverTheWire – Paso a Paso (Walkthrough) en Español

      Comentarios desactivados en Natas level 11 – OverTheWire – Paso a Paso (Walkthrough) en Español

Para acceder al level 11 de Natas necesitamos los siguientes datos de acceso (la contraseña ha sido obtenida en el reto natas10):

Username: natas11
Password: U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK
URL: http://natas11.natas.labs.overthewire.org

Una vez hayamos accedido a este nivel veremos un mensaje que nos indica Las cookies están protegidas con encriptación XOR.

También podemos ver el código fuente del sitio web haciendo clic en el enlace View sourcecode que se encuentra resaltado en color azul.

Lo primero que podemos observar en el código es la función de cómo se ha encriptado la cookie.

Para obtener la cookie data, podemos abrir el inspector de elementos de Mozilla Firefox, y acceder a la pestaña Storage, y copiar el campo Value.

Reutilizando la función xor_encrypt del código original, podemos pasarle la cookie data e indicando que la variable $key será $defaultdata (codificada en json):

$defaultdata = array( "showpassword"=>"no", "bgcolor"=>"#ffffff");
$cookie = "ClVLIh4ASCsCBE8lAxMacFMZV2hdVVotEhhUJQNVAmhSEV4sFxFeaAw=";

function xor_encrypt($in, $defaultdata) {
    $key = $defaultdata;
    $text = $in;
    $outText = '';
  
    // Iterate through each character
    for($i=0;$i<strlen($text);$i++) {
        $outText .= $text[$i] ^ $key[$i % strlen($key)];
    }

    return $outText;
}

echo xor_encrypt(base64_decode($cookie), json_encode($defaultdata));

El resultado de ejecutar este código, nos devolverá la clave para obtener nuestra contraseña: qw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jq

Ahora debemos fijarnos que para que se muestre la clave, la opción showpassword debe ser igual a yes.

Igual que antes, reutilizando la función xor_encrypt ahora le asignamos a la variable $key el valor de la clave obtenida anteriormente.

$data = array( "showpassword"=>"yes", "bgcolor"=>"#ffffff");  
  
function xor_encrypt($in) {  
    $key = 'qw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jqw8Jq';  
    $text = $in;  
    $outText = '';  
  
    // Iterate through each character  
    for($i=0;$i<strlen($text);$i++) {  
        $outText .= $text[$i] ^ $key[$i % strlen($key)];  
    }  
  
    return $outText;  
}  
  
echo base64_encode(xor_encrypt(json_encode($data))); 

El resultado de ejecutar este código, nos devolverá el nuevo valor la cookie encriptada que nos servirá para obtener la contraseña para acceder al siguiente nivel: ClVLIh4ASCsCBE8lAxMacFMOXTlTWxooFhRXJh4FGnBTVF4sFxFeLFMK

Simplemente debemos cambiar el campo Value de la cookie data por este nuevo obtenido.

Una vez cambiado el valor de la cookie, podemos presionar F5 para actualizar la página y ya obendremos la contraseña para acceder al siguiente nivel.

La contraseña para acceder a nivel natas 12 es EDXp0pS26wLKHZy1rDBPUZk0RKfLGIR3

Este reto ha sido resuelto por Init0 (initcero) un equipo red team en Canarias (España).