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

Hint 1

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!