En esta ocasión pongo la solución a otro reto de UTC-CTF 2019, competición tipo 'Capture The Flag' (CTF), en formato 'Jeopardy', modalidad 'On-line' y por equipos.
Al igual que en el desafío cuya solución puse en el post anterior, se trata de un reto de la categoría 'Miscellaneous' (Misc), pero que yo catalogo en este blog, también al igual que en el citado post, como de programación, y que en mi opinión tiene un nivel de dificultad bajo (★★☆☆☆).
El título del reto es "Really Good Bicture" y su enunciado es el siguiente:
El enunciado parece indicar que la solución a este desafío se encuentra en la información visual de la imagen que contiene el archivo asociado al reto (flag.png), ya que dice que es una foto de la flag.
Descargo dicho archivo y lo abro:
En la imagen se ven 10 franjas verticales de diferentes colores, y la "B" sobre fondo rojo del título, que sustituye a una "P", me sugiere los valores "RGB" correspondientes a dichos colores.
Por tanto, creo un script en python para extraer los valores "RGB" de todos los píxeles de la imagen, me quedo con una tupla de tres elementos (los valores "R", "G" y "B") por cada color que aparece en ella y convierto los valores en decimal de todas esas 3-tuplas al carácter ASCII al que representan:
from PIL import Image
flag = Image.open('flag.png', 'r')
lista_pixels_RGB = list(flag.getdata())
flag.close()
lista_valores_RGB = []
[lista_valores_RGB.append(tupla) for tupla in lista_pixels_RGB if tupla not in lista_valores_RGB]
lista_valores_RGB_aplanada = [valor_RGB for tupla in lista_valores_RGB for valor_RGB in tupla]
flag = ''
for i in range(0, len(lista_valores_RGB_aplanada)):
flag += chr(lista_valores_RGB_aplanada[i])
print ''
print 'Flag:',flag
Lo ejecuto:
Y ya puedo ver la flag: utc{taste_the_rainbow94100389}.
Al igual que en el desafío cuya solución puse en el post anterior, se trata de un reto de la categoría 'Miscellaneous' (Misc), pero que yo catalogo en este blog, también al igual que en el citado post, como de programación, y que en mi opinión tiene un nivel de dificultad bajo (★★☆☆☆).
El título del reto es "Really Good Bicture" y su enunciado es el siguiente:
El enunciado parece indicar que la solución a este desafío se encuentra en la información visual de la imagen que contiene el archivo asociado al reto (flag.png), ya que dice que es una foto de la flag.
Descargo dicho archivo y lo abro:
En la imagen se ven 10 franjas verticales de diferentes colores, y la "B" sobre fondo rojo del título, que sustituye a una "P", me sugiere los valores "RGB" correspondientes a dichos colores.
Por tanto, creo un script en python para extraer los valores "RGB" de todos los píxeles de la imagen, me quedo con una tupla de tres elementos (los valores "R", "G" y "B") por cada color que aparece en ella y convierto los valores en decimal de todas esas 3-tuplas al carácter ASCII al que representan:
from PIL import Image
flag = Image.open('flag.png', 'r')
lista_pixels_RGB = list(flag.getdata())
flag.close()
lista_valores_RGB = []
[lista_valores_RGB.append(tupla) for tupla in lista_pixels_RGB if tupla not in lista_valores_RGB]
lista_valores_RGB_aplanada = [valor_RGB for tupla in lista_valores_RGB for valor_RGB in tupla]
flag = ''
for i in range(0, len(lista_valores_RGB_aplanada)):
flag += chr(lista_valores_RGB_aplanada[i])
print ''
print 'Flag:',flag
Lo ejecuto:
Y ya puedo ver la flag: utc{taste_the_rainbow94100389}.
Comentarios
Publicar un comentario