Challenge

Information

Hidden in plainsight es un challenge de dificultad fácil dentro de la categoría Forensics de la plataforma picoCTF y fue creado por el usuario YAHAYA MEDDY.

Description

You’re given a seemingly ordinary JPG image. Something is tucked away out of sight inside the file.

Your task is to discover the hidden payload and extract the flag.

Hints

Se nos facilita la siguiente pista:

Download the jpg image and read its metadata

Download

wget -q --no-check-certificate "https://challenge-files.picoctf.net/c_amiable_citadel/1b638a2799b26ff08169f1703b4f0f2738599d68ffafe63b8f6ea303b3d596ab/img.jpg"


Solution

Image

Stego
Metadata-Based Steganography

Uso la herramienta exiftool para extraer los metadatos de la imagen, donde encuentro una cadena codificada en base64.

root@kali:~  exiftool img.jpg 
ExifTool Version Number         : 13.44
File Name                       : img.jpg
Directory                       : .
File Size                       : 73 kB
File Modification Date/Time     : 2025:11:07 20:17:40+01:00
File Access Date/Time           : 2026:02:07 09:12:42+01:00
File Inode Change Date/Time     : 2026:02:07 09:12:24+01:00
File Permissions                : -rw-r--r--
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Comment                         : c3RlZ2hpZGU6Y0VGNmVuZHZjbVE9
Image Width                     : 640
Image Height                    : 640
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 640x640
Megapixels                      : 0.410

Comment : c3RlZ2hpZGU6Y0VGNmVuZHZjbVE9

Base64 Decode

Decodifico la cadena, que aparentemente está codificada en base64.

root@kali:~  base64 -d <<< 'c3RlZ2hpZGU6Y0VGNmVuZHZjbVE9'
steghide:cEF6endvcmQ=

Decodifico la cadena nuevamente, ya que parece estar codificada varias veces, y obtengo un password.

root@kali:~  base64 -d <<< 'cEF6endvcmQ='
pAzzword
File Embedding Steganography

Con la herramienta steghide compruebo si existe algún archivo oculto dentro de la imagen, pero la herramienta solicita un password.

root@kali:~  steghide info img.jpg
"img.jpg":
  formato: jpeg
  capacidad: 4,0 KB
Intenta informarse sobre los datos adjuntos? (s/n)

Al proporcionar el password obtenido previamente, la herramienta indica que existe un archivo oculto llamado flag.txt.

root@kali:~  steghide info img.jpg
"img.jpg":
  formato: jpeg
  capacidad: 4,0 KB
Intenta informarse sobre los datos adjuntos? (s/n) s
Anotar salvoconducto: 
  archivo adjunto "flag.txt":
    tamao: 34,0 Byte
    encriptado: rijndael-128, cbc
    compactado: si

Finalmente, consigo extraer el archivo oculto flag.txt desde el interior de la imagen.

root@kali:~  steghide extract -sf img.jpg 
Anotar salvoconducto: 
anot los datos extrados e/"flag.txt".

Flag

Leo el contenido del archivo flag.txt y obtengo la flag.

root@kali:~  cat flag.txt 
picoCTF{h1dd3n_1n_XXXXXXXXXXXXXXXXXXXXXXXXX}

Hasta aquí la resolución del challenge Hidden in plainsight de picoCTF.

Happy Hacking!