Комариный писк
Комариный писк
Platform: bug-makers | Category: Steganography | Type: Challenge | Difficulty: Easy | OS: Linux | Author: XESXOR | Date: 2026-05-27 | Status: Solved Techniques: spectrogram_steganography, frequency_domain_text_hiding
Summary
Task: WAV audio file with hidden data, challenge name hints at frequency analysis (mosquito squeak). Solution: spectrogram visualization with sox reveals flag text written in the 6-16 kHz frequency band.
Комариный писк — bug-makers CTF
Description
Что скрывает этот писк?
English summary: A WAV audio file (maskito.wav) is provided. The challenge name "Комариный писк" means "mosquito squeak" in Russian, and the description asks "What does this squeak hide?" — both hinting at audio frequency analysis.
Analysis
Initial reconnaissance of the file:
- Format: RIFF WAV, 16-bit PCM, mono, 44100 Hz
- Duration: ~6 seconds (264600 samples, 529 KB)
- Raw data inspection: No embedded files (binwalk clean), no flag strings in raw bytes
- Metadata: No suspicious EXIF/metadata fields
The challenge name "Комариный писк" (mosquito squeak) and the filename "maskito" (play on "mosquito") are strong semantic clues pointing toward frequency/spectrogram analysis — a classic audio steganography technique where text or images are encoded as patterns in the frequency domain.
Solution
Step 1: Generate spectrogram
The key insight from the challenge name is that the data is hidden in the frequency domain, not in the time domain or raw sample values. A spectrogram converts the audio into a visual representation where the X-axis is time and the Y-axis is frequency.
bash read-only • copy allowedsox maskito.wav -n spectrogram -m -o spectrogram.png
Options used:
-n— null output (don't produce audio)spectrogram— generate spectrogram effect-m— monochrome (better contrast for text)-o spectrogram.png— output file
Step 2: Read the flag
The monochrome spectrogram clearly reveals the flag text BugCTF{REDACTED} written as visual patterns in the 6–16 kHz frequency range. The text is easily readable without any additional processing.
The flag uses leet-speak: REDACTED → "easy_stegano" (3→e, 0→o).