# Riddle Registry PicoCTF (Easy)

## Contexto de la maquina

### Trayectoria Riddle Registry

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2F3Imj2t0Gx0yWnfejmDW5%2Ftrayectoria_riddle_registry.png?alt=media&#x26;token=c585e558-dc15-47ee-ab21-4b61fbb60db4" alt=""><figcaption></figcaption></figure>

### Descripción

**Riddle Registry** es un reto orientado al análisis forense básico de documentos. Se proporciona un archivo PDF aparentemente inofensivo que contiene información visualmente irrelevante o censurada. El objetivo real no se encuentra en el contenido visible del documento, sino en sus metadatos internos.

**Objetivo del reto**

Localizar y extraer la flag oculta dentro de los metadatos del archivo PDF proporcionado.

**Tipo de máquina**

* Forense / Análisis de archivos
* Enfoque en metadatos
* Entorno Web (descarga de archivo)

**Habilidades y técnicas evaluadas**

* Descarga y análisis de archivos desde entorno web.
* Inspección manual de documentos PDF.
* Extracción y análisis de metadatos.
* Identificación de datos codificados en Base64.
* Decodificación de información.

### Análisis de vulnerabilidades

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2F1Lmn8p0ywyfJHo9hGNaZ%2Fvuln1_riddle_registry.png?alt=media&#x26;token=1e9e141f-d355-41a4-a656-28c79fe3b9a5" alt=""><figcaption></figcaption></figure>

## Despliegue del CTF

En la propia pagina buscaremos el `CTF`, dentro veremos un boton llamado `Launch Instance`, una ves desplegado nos aparecera `here` donde se encuentra el `dominio` junto con el puerto asociado al mismo.

El objetivo de estos `CTFs` es encontrar la `flag` final.

## Análisis de metadatos (PDF)

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FaBxw4kBnnNmE8QLGipKh%2Fvuln1Card_riddle_registry.png?alt=media&#x26;token=d95bf01b-a9eb-41c0-9d5f-886cde29bd6a" alt=""><figcaption></figcaption></figure>

La descripcion del reto es la siguiente:

```
Hi, intrepid investigator! 📄🔍 You've stumbled upon a peculiar PDF filled with what seems like nothing more than garbled nonsense. But beware! Not everything is as it appears. Amidst the chaos lies a hidden treasure—an elusive flag waiting to be uncovered. 
Find the PDF file here Hidden Confidential Document and uncover the flag within the metadata.
```

El enunciado indica claramente que el PDF contiene información oculta en los **metadatos**, por lo que el enfoque principal no debe centrarse únicamente en el contenido visual.

Procedemos a descargar el archivo:

```shell
wget https://<DOMAIN>/confidential.pdf
```

### Inspección visual inicial

Al abrir el PDF observamos un documento aparentemente normal, con ciertas líneas censuradas en negro:

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FBGgDDp6bxrHpaEog290u%2FPasted%20image%2020260226110022.png?alt=media&#x26;token=04437aa9-57bb-4a99-94d1-51b8d43aa321" alt=""><figcaption></figcaption></figure>

Si intentamos seleccionar el texto oculto, comprobamos que no contiene información relevante:

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FeMoMFYCE6t4Sy8zTLhal%2FPasted%20image%2020260226110047.png?alt=media&#x26;token=ab3aa47c-f76d-40fa-a1a8-5c704641de2b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FcC3xFupAnULz2TiAkP3r%2FPasted%20image%2020260226110057.png?alt=media&#x26;token=2a56e419-85ea-4725-a780-33c754cce376" alt=""><figcaption></figcaption></figure>

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FhUmtAtSgtHef2yNS4AZx%2FPasted%20image%2020260226110208.png?alt=media&#x26;token=895ce2ee-a6b0-44fe-88ad-e54cd5587987" alt=""><figcaption></figcaption></figure>

<figure><img src="https://4289632959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5Wk1VNaLaqCTbfMb7tfp%2Fuploads%2FaY8j4VKtSpWyCL8UCE6V%2FPasted%20image%2020260226110217.png?alt=media&#x26;token=ceba8ec3-87e3-49da-90e7-e10196f70fdd" alt=""><figcaption></figcaption></figure>

Esto nos confirma que la información crítica no se encuentra en el contenido visible del documento. Por tanto, el siguiente paso lógico es analizar los **metadatos del archivo**.

## Extracción de metadatos

Para ello utilizamos la herramienta `exiftool`, especializada en la inspección de metadatos en distintos formatos de archivo:

```shell
exiftool confidential.pdf
```

Respuesta:

```
ExifTool Version Number         : 13.44
File Name                       : confidential.pdf
Directory                       : .
File Size                       : 183 kB
File Modification Date/Time     : 2025:11:07 14:17:33-05:00
File Access Date/Time           : 2026:02:26 04:59:02-05:00
File Inode Change Date/Time     : 2026:02:26 04:58:28-05:00
File Permissions                : -rw-rw-r--
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.7
Linearized                      : No
Page Count                      : 1
Producer                        : PyPDF2
Author                          : cGljb0NURntwdXp6bDNkX20zdGFkYXRhX2YwdW5kIV9jMjA3MzY2OX0=
```

Observamos que el campo **Author** contiene una cadena que claramente tiene formato Base64.

## Decodificación de la información

Procedemos a decodificar la cadena:

```shell
echo 'cGljb0NURntwdXp6bDNkX20zdGFkYXRhX2YwdW5kIV9jMjA3MzY2OX0=' | base64 -d -w0
```

Respuesta:

```
picoCTF{puzzl3d_m3tadata_f0und!_c2073669}
```

La salida corresponde directamente a la flag del reto, por lo que daremos por terminado este reto.

> flag.txt

```
picoCTF{puzzl3d_m3tadata_f0und!_c2073669}
```
