Skip to main content

Solución del CTF Fetch the Flag 2023 de Snyk: Honey Baked Messages

Escrito por
snyk ctf honey baked messages

30 de noviembre de 2023

0 minutos de lectura

¡Gracias por jugar Fetch con nosotros! Felicitaciones a los miles de jugadores que participaron en el CTF Fetch the Flag. Si participaste en Fetch the Flag 2023 de Snyk y buscas la respuesta al desafío Honey Baked Messages, llegaste al lugar indicado. ¡Veamos juntos la solución!

Este desafío se centra en los códigos de Hamming. Los códigos de Hamming son un tipo de código de corrección de errores. Este desafío usa la versión (7, 4) de los códigos de Hamming.

El desafío consta de estas partes:

  1. Entender que se trata de codificación de Hamming.

  2. Leer cada línea del archivo. 

  3. Determinar la matriz H necesaria para el problema.

  4. Corregir los errores de todo el archivo y obtener la bandera.

Aquí está el script de solución solve.py:

import numpy as np

H = np.array(
        [
            [1, 1, 1, 0, 1, 0, 0],
            [0, 1, 1, 1, 0, 1, 0],
            [1, 1, 0, 1, 0, 0, 1]
        ]
    )
errors = {
    "000":None,
    "001": 6,
    "010": 5,
    "011": 3,
    "100": 4,
    "101": 0,
    "110": 2,
    "111": 1
}

def np2usable(nparr):
    return np.array2string(nparr).replace(" ", "" ).replace("[", "").replace(']', "")

def fixErrs(hamming):
    error = (np.matmul(H, hamming)%2)
    err_idx = errors[np2usable(error)]
    if err_idx != None:
        # print(err_idx)
        hamming[err_idx] +=1
        hamming[err_idx] %= 2

    return hamming[:4]

data = []
with open("message_2.txt", "r") as reader:
    for line in reader:
        code = np.fromstring(" ".join(line.strip("\n")), dtype = int, sep=" ")
        data.append(np2usable(fixErrs(code)))
split_chars = (list(zip(*(iter(data),) * 2)))

[print(chr(int(j+k, 2)), end="") for j,k in split_chars ]

¡Gracias por hacer posible Fetch!

Un enorme agradecimiento a todos los equipos de Fetch the Flag 2023. ¡Fue genial verlos a todos allí! También puedes encontrarme en YouTube.

Aquí están las soluciones de los demás desafíos de 2023. ¡Échales un vistazo!

Publicado en:

Leer más

Blog

Fetch the Flag CTF 2026: soluciones oficiales de los desafíos y momentos destacados de la comunidad

Explora los artículos oficiales y las novedades de la comunidad del CTF Fetch the Flag 2026, con más de 20 desafíos de seguridad web, IA y criptografía. Aprende de los expertos y profundiza en los detalles técnicos de los rompecabezas binarios y las vulnerabilidades web más complejos de este año.

Blog

4 razones por las que los CTF son una de las mejores formas de crecer en ciberseguridad

Las competencias Capture The Flag (CTF) son una excelente forma de impulsar tu carrera en ciberseguridad, ya que te exponen a vulnerabilidades del mundo real y a diversos nichos técnicos. Descubre por qué los CTF son una de las mejores maneras de ampliar tus conocimientos y tu red profesional.

Compliance FEATURE cropped
Blog

La guía definitiva de los próximos CTF: de principiante a hacker de élite en 6 meses (octubre de 2025 - abril de 2026)

Domina los CTF en 6 meses y pasa de principiante a hacker de élite con esta guía definitiva. Descubre las principales competencias, conoce las categorías de dificultad y planifica tu camino al éxito de octubre de 2025 a abril de 2026.