UMassCTF 2026 - Ninja-Nerds
where are your little ninja-nerds?
Initial Analysis
The challenge provided a single image file:
challenge.png. Initial investigation focused on gathering
basic information about the file and its metadata.
- File Type: Standard PNG image (640x360).
- Metadata:
exiftoolshowed no unusual comments or hidden fields. - Strings: Running
stringsdid not reveal the flag in plain text, suggesting it was encoded or hidden within the pixel data. - Embedded Files:
binwalkdid not detect any appended files (like zips or other images).
Given that the file appeared to be a clean PNG with no obvious trailing data or metadata tricks, I suspected LSB (Least Significant Bit) Steganography. This technique hides data by slightly modifying the last bit of color values (Red, Green, or Blue), which is invisible to the human eye.
Solution
To extract the hidden data, we can either use automated tools or a custom script to parse the LSBs from each color plane.
1. Automated Approach
Using zsteg, we can quickly scan for common LSB
patterns: 1
zsteg -E "b1,b,lsb,xy" challenge.png | strings | grep "UMASS{"
2. Manual Extraction Script
Alternatively, using the Pillow library in Python allows
for precise extraction from specific color channels.
1 | import PIL.Image |
Running the extraction against the color planes reveals that the flag is hidden in the Blue channel (Plane 2).