Skip to main content
Volver a writeups

Writeup técnico

Flag 3 (Planned-Flags-signed-2.pdf) – Nullcon CTF 2026

---

nullcon CTF 2026

Datos del reto

Campo Valor
CTF Nullcon CTF 2026
Reto Flag 3 (Planned-Flags-signed-2.pdf)
Categoría Forense / Misc
Flag ENO{semantic_3_inference_initialized}

Descripción del reto

El archivo entregado era un PDF con varias flags escondidas y una consigna concreta: había que enviar la que contuviera un 3. El documento parecía redactado, así que el trabajo consistía menos en leer texto visible y más en revisar qué información seguía viva dentro del PDF.


Reconocimiento

Lo primero fue revisar las fuentes más obvias:

  • pdftotext mostraba flags en otras secciones, pero no la que pedía el reto.
  • Los metadatos incluían otra cadena con formato de flag, aunque contenía 7 y 6, no 3.
  • Las anotaciones también revelaban una flag, pero con 2.

Eso dejaba claro que la respuesta no estaba ni en el texto extraíble ni en los metadatos más evidentes.


Análisis

Cuando un PDF está "redactado", muchas veces el contenido original no desaparece del todo. A veces queda convertido en una imagen, desenfocado o superpuesto de forma que no se pueda copiar, pero sigue siendo recuperable al extraer los objetos incrustados.

Por eso el siguiente paso fue sacar todas las imágenes del documento:

mutool extract Planned-Flags-signed-2.pdf

Entre los archivos generados aparecía image-0080.png, que correspondía al bloque redactado de la página 2, justo donde se listaban las flags.


Resolución

Al abrir image-0080.png, aunque el texto estaba borroso, la estructura seguía siendo legible. Se alcanzaba a distinguir una lista del tipo:

  • "The first flag is ..."
  • "The second flag is ..."
  • "The third flag is ENO{semantic_3_inference_initialized}, ..."

Eso resolvía el reto sin demasiada duda: la tercera flag era la única que contenía el carácter 3 dentro de su cuerpo.


Flag

ENO{semantic_3_inference_initialized}