· Manuel López Pérez · writeups  · 2 min read

Resolviendo los retos básicos de Atenea (CCN-CERT) 3/3

Tercera y última parte de los retos básicos de Atenea (CCN-CERT): tipos de datos, bash, Python, C y Java, incluyendo compilación y descompilación.

Tercera y última parte de los retos básicos de Atenea (CCN-CERT): tipos de datos, bash, Python, C y Java, incluyendo compilación y descompilación.

Resolviendo los retos básicos de Atenea (CCN-CERT) 3/3Buenas de nuevo, vamos a terminar los retos básicos de https://atenea.ccn-cert.cni.es Esto es la tercera parte, si queréis ver los anteriores: Parte 1 Parte 2

Reto 13 - Variable

Enunciado:

Para superar este reto, deberás identificar, entre las siguientes declaraciones de variables, cuál de ellas tiene asociado un tipo de datos erróneo:

byte num = 44; short med = 1223; long lmax = 839492019487; float mreal = 112.31f; double rbig = 761132.4321; boolean bbin = true; int max = "1000"; char lett = 'A';

La solución al reto es el nombre de la variable (por ejemplo: vbar), en el formato de la plataforma.

Solución:

Cualquiera con unas nociones basicas de programación se dará cuenta de que a la variable max se le ha asignado una cadena en vez de un entero. La solución por tanto es: max

Reto 14 - Variable 2

Enunciado:

Para superar este reto, deberás encontrar el equivalente en BASH, de la siguiente línea de código en BASIC: PRINT “Atenea”​

Solución:

Conociendo un poco la notacion de bash resolveremos fácilmente este reto; se utiliza el comando echo para mostrar cadenas por pantalla:

echo "Atenea"

Reto 15 - Python

Enunciado:

Para superar este reto deberás obtener el valor de la variable result del siguiente script en python, que te dará el password que necesitas.

Solución:

Para obtener el valor de una variable en python y mostrarla por pantalla usamos print, asi que bastara con añadir al final del fichero la linea:

print result

Para esto vamos a usar un simple comando de bash, y ejecutamos el script:

echo "print result" >> script-6a21d37e6d6a4c87c06ba3ec40e28e0c.py python script-6a21d37e6d6a4c87c06ba3ec40e28e0c.py 

Reto 16 - C

Enunciado:

Para poder superar este reto deberás compilar y ejecutar el siguiente código en C.

Solución:

Ni si quiera hace falta compilar el programa, bastaría con ver el contenido de la variable que muestra por pantalla. Pero el objetivo de este reto no es ese, así que vamos a compilar y ejecutarlo:

gcc pass-8fee4bb1bd3340423ecda42c36b5ba5a.c -o pass ./pass

Reto 17 - Java

Enunciado:

Para poder superar este reto deberás descompilar, es decir, obtener el código fuente, del siguiente programa compilado de Java, para obtener el valor de una variable en concreto.

Solución:

Para decompilar los .class de java podemos usar esta web: http://www.javadecompilers.com/ O hacerlo a mano desde la terminal

jad main-0be7342133d811710a0b94038f70e423.class

Buscando entre el código obtenido vemos rápidamente el contenido de la variable deseada: String ThisIsTheVariableYouAreLookingFor = “30853506b923083a”;

Back to Blog

Related Posts

View All Posts »