HackIt 2024 / EE32 / Level 1

Briefing del HackIt/SolveIt 2024

Un año más (y van unos cuantos, desde la Euskal VII) hemos vuelto a participar en el HackIt. Este año venía con novedades importantes: Marcan cedía el testigo a OntzA (Xabier Eizmendi, a la izquierda de la foto) de NavarParty, que junto a Imobilis (Juan Traverso, derecha), han organizado una excelente edición.

Había más retos y más diversidad en las pruebas, desde los muy fáciles a alguno muy complicado (sólo superado por w0pr, as usual 🙂

Al lío. Esta vez me encargué de hacer una copia de los retos, tanto del hackit como del solveit. Están publicados en Ikasten.io, siguiendo este esquema de URL:

HackIt:

https://ikasten.io/ee32/hackit/level1/level1.html

SolveIt:

https://ikasten.io/ee32/solveit/level1/level1.html

El primer level del HackIt, como suele ser habitual ha sido muy sencillo. No siempre es así, por ejemplo, creo que fue el año pasado, en una prueba de WebGL, fue una excepción.

En el código fuente vemos una simple operación de XOR

$(document).ready(function(){$("#password").
keyup(function(o){
r=$("#password").val();t="youknowit";c=[0x3c,0xe,0x6,0x12,0x1e,0x5c,0x16,0x1a,0xd];

e="";for(i=0;i<r.length;i++){
e+=String.fromCharCode(r.charCodeAt(i)^c[i%9]);}
$("#password").css({"background-color":e==t?

"#8f8":"#f88"});
});});

Reversible muy fácilmente:

def reverse_algorithm(encrypted_str, c):
password = ""
for i in range(len(encrypted_str)):
char = chr(ord(encrypted_str[i]) ^ c[i % len(c)])
password += char
return password

encrypted_str = "youknowit"
c = [0x3c, 0x0e, 0x06, 0x12, 0x1e, 0x5c, 0x16, 0x1a, 0x0d]

password = reverse_algorithm(encrypted_str, c)
print("The password is:", password)

Easy peasy!

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.