#Hanging Nose
Author: synack

Analizamos la imagen, rotamos, agrandamos… y si hacemos zoom podemos conseguir entrar dentro de la bola y… tachán!!

#HellJail
Autor: GB1
#!/usr/bin/env python3
from string import ascii_letters
code = input('> ')
if any(c in ascii_letters for c in code):
print('You will never leave this place!')
elif any(c in '.:;,-_@"=/%\\' for c in code):
print('You will never reach this point, but still, you CANNOT leave!')
else:
exec(code)
Nos enfrentamos ante una pequeña python jail, en la que no admite caracteres de ASCII ni tampoco una lista de signos de puntuacion y otros caracteres… Una larga búsqueda, cambio entre media a otros retos para despejar la mente…después de todo esto empiezo a encontrar información…TRANSFORMAR EL TEXTO A ITALIC parece que es la solución… la primera prueba que hago es un simple print pero el texto está en italic.
Usé Generador de textos en italic, así que probé con print, ctrl+c y ctrl+v en el input de la jail. El output fue muy esperanzador, ya que devuelve el print correctamente.
Ahora “solo” queda leer la flag… jejeje aquí supuso otra larga búsqueda, porque para leer el fichero había puntos (.read) y aunque pasemos el primer if… el segundo es mas complejo…mis conocimientos en python son bajos, estoy empezando a ver cosas para hacer mis propios scripts pero poca cosa… entoces los ejemplos típicos para leer ficheros como ya he comentado son con el método read:
contenido = open('nombre_archivo.txt', 'r').read()
print(contenido)
Todo esto no funcionaba entoces empecé a buscar onliner para leer ficheros, después de una larga y desesperante encontré esta linea…
print(next(iter(open('/flag.txt'))))
Claro, yo daba por hecho que el fichero solo iba a tener una linea y que iba a ser la flag, por eso itero por las lineas del fichero, aunque este payload como tal no funciona porque aunque lo ponga en italic, la ”/” y el ”.” entraba en el segundo if. Solución? Usar el método chr() para obtener el caracter según su valor y concatenando todos los strings que devuelve, quedando el payload de la siguiente manera:
𝘱𝘳𝘪𝘯𝘵(𝘯𝘦𝘹𝘵(𝘪𝘵𝘦𝘳(𝘰𝘱𝘦𝘯(𝘤𝘩𝘳(47)+𝘤𝘩𝘳(102)+𝘤𝘩𝘳(108)+𝘤𝘩𝘳(97)+𝘤𝘩𝘳(103)+𝘤𝘩𝘳(46)+𝘤𝘩𝘳(116)+𝘤𝘩𝘳(120)+𝘤𝘩𝘳(116)))))

#Who Can Haz Flag
Author: synack
Después de un rato analizando los paquetes http, dns y alguno más… al ver los paquetes ARP ordenados vemos que las IP’s saltan de una forma rara y no son secuenciales como se haría de forma normal al escanear la red.

Lo primero que se nos ocurre es mirar en una tabla ASCII y ver cual es la D, curiosidamente es el 68 que es la terminación de la primera IP. Asi que lo único que hay que hacer es traducir el último byte de las IP’s a caracter utilizando una tabla ASCII y ya tendrías la flag.