Incognito CTF 6.0

比赛地址:Incognito CTF 6.0

比赛时间:2025-04-28 08:00 - 2025-04-29 08:00

复现的题目用🔁标注

Digital Forensics

The Fragmented Truth

Challenge

The Fragmented Truth
In this sea of chaos, can you uncover the signal, where ictf holds the key to rising above the noise in the transmission?

Solution

IncognitoCTF60-1

搜索 ictf 后找到第 22 条流量

IncognitoCTF60-2

发现这是一张 .png 图片,保存下来

IncognitoCTF60-3

1
ictf{1n_7h3_s1l3nc3_0f_fr4gm3n75_w3_r3v34l}

The Spectral Image b6414

Challenge

The Spectral Image b6414
Remember, sometimes the key to unlocking an image isn’t through typical means—try exploring old-school methods of transmission.

Solution

** 第一层:** 改后缀

IncognitoCTF60-4

010 打开发现不对劲,后缀改为 .wav 后用 Audacity 打开分析

IncognitoCTF60-5

听了一下感觉像是 SSTV

** 第二层:**SSTV

使用手机软件 xdsopl/robot36 读取信息

IncognitoCTF60-6

1
ictf{cjFrX3kzX2YwX2Z0M195MDB6}

** 第三层:**base64 解码

很明显还要解码

IncognitoCTF60-7

1
r1k_y3_f0_ft3_y00z

** 第四层:** 凯撒密码

base64 解码后还是不具有语义,显然还经过替换式密码的加密,根据题目猜测移动 14 位得到具有语义的结果

IncognitoCTF60-8

1
f1y_m3_t0_th3_m00n
1
ictf{f1y_m3_t0_th3_m00n}

🔁Sneaky_Sneaker

Challenge

Sneaky_Sneaker
Something is sneaking behind the sneakers.

IncognitoCTF60-9

Solution

010 打开发现下面藏了东西

IncognitoCTF60-10

binwalk 提取出一个压缩包,解压得到一个音频文件 h4ck3r_h1n7.wav

IncognitoCTF60-11

听不太清,用 Audacity 改变一下音高

IncognitoCTF60-12

Whisper Turbo 识别一下

IncognitoCTF60-13

不太准确,我认为应该是 the key lies in the bits nobody hears(到这一步就想不到了,没往隐写那方面想,下面是复现,思路来自 Incognito 6.0 CTF 2025 WriteUps(Sneaky Sneaker) | by Bünyamin Laçın | Apr, 2025 | Medium

这一步其实是一个提示,关键藏在那些听不到的比特之中,因此应该猜到这里描述的是音频的 LSB 隐写,下面是提取脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import wave

def extract_lsb(wav_path, output_path):
with wave.open(wav_path, 'rb') as audio:
frame_bytes = bytearray(list(audio.readframes(audio.getnframes())))

# 提取每个字节的最低位
bits = [b & 1 for b in frame_bytes]

# 将比特流重组为字节
extracted = bytearray()
for i in range(0, len(bits), 8):
byte = 0
for b in bits[i:i+8]:
byte = (byte << 1) | b
extracted.append(byte)

# 写入输出文件
with open(output_path, 'wb') as f:
f.write(extracted)

print(f"[+] 提取完成,结果保存到: {output_path}")

if __name__ == "__main__":
wav_file = "h4ck3r_h1n7.wav"
output_file = "extracted_data.bin"
extract_lsb(wav_file, output_file)

IncognitoCTF60-14

1
ictf{wh15p3r5_0f_4_gh05t}