RowdyHacks XII: teto territory

A 250-point multi-stage challenge: a PNG with an appended WAV whose stereo-difference DTMF tones spelled the password to a final encrypted ZIP.

RowdyHacks XII

misc250 ptssteganographydtmfaudiofile-carving

Challenge

Miscellaneous · 250 points. A player ZIP contains territory.png.

Layered structure

The PNG's logical image ends well before the file does. The appended bytes start with a RIFF/WAV header, and that WAV's declared size in turn points to a final encrypted ZIP at the tail. So the single image is three files stacked: PNG, then WAV, then ZIP.

Decoding the audio

The WAV has two channels that are nearly identical. Subtracting right from left isolates thirteen short dual-frequency tones, and the spectrogram of the full track even spells the hint TWO VOICES FIND DIFFERENCE, confirming the stereo-difference approach.

The tones are standard telephone-keypad (DTMF) frequency pairs. They decode to 8386837748679, which is the keypad spelling of TETOTERRITORY. That numeric string is the ZIP password:

7z t -p8386837748679 territory.zip     # -> Everything is Ok
7z x -so -p8386837748679 territory.zip territory.txt

The WAV metadata's archive password: baguette is a decoy. It fails the integrity check.

Takeaway

Covert channels stack: trailing data after the PNG, a stereo-difference signal, and DTMF tones, each invisible to a glance at the image. The same reasoning that hides a flag hides exfiltration, so the defense is to canonicalize or re-encode media on ingest and treat any bytes past a file's logical end as suspect.

Flag

Spoiler: show the flag
rowdy{t3t0_p3ar}