Skip to main content

Hiding in Plain Sight

Challenge

Content preserved from the original writeup source. Minimal normalization was applied to fit platform format.

Solution

Original Writeup Content (Preserved)

Hiding in Plain Sight - Write-Up

Challenge

A single image file was provided: hello.webp.

Prompt hint:

  • "There's something strange about this image..."
  • Flag format: DawgCTF{Person_Or_Object}

Initial Checks

I started with basic file and metadata inspection:

  • Confirmed hello.webp is a normal VP8 WebP image (1024x1024).
  • Checked EXIF/metadata with exiftool; no useful hidden text.
  • Checked for appended payloads with binwalk; no embedded secondary files detected.

At this point, the clue likely involved visual steganography rather than metadata/file concatenation.

Visual Stego Approach

To reveal hidden content, I generated multiple image transforms:

  • high contrast
  • edge detection
  • channel splits (R/G/B)
  • bit-plane extraction for each RGB channel (bits 0 through 7)

The key step was bit-plane analysis. In the higher bit planes (especially around bit 7), a hidden face becomes clearly visible.

Identification

The hidden face is Barack Obama.

Final Flag

DawgCTF{Barack_Obama}

Repro Notes (commands used)

file hello.webp
exiftool -a -u -g1 hello.webp
binwalk hello.webp
from PIL import Image
import numpy as np

img = np.array(Image.open('hello.webp').convert('RGB'))
for c, name in enumerate(['r', 'g', 'b']):
ch = img[:, :, c]
for bit in range(8):
plane = ((ch >> bit) & 1) * 255
Image.fromarray(plane.astype('uint8')).save(f'hello_{name}_bit{bit}.png')

Takeaway

If a challenge says "in plain sight" and metadata looks clean, bit-plane or channel-based visual steganography is often the intended solve path.